τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Το Compose είναι ένα λογισμικό εργαλείο που κυκλοφόρησε από την Docker Company, το οποίο μπορεί να διαχειριστεί πολλαπλά κοντέινερ Docker για να σχηματίσει μια εφαρμογή. Πρέπει να ορίσετε ένα αρχείο διαμόρφωσης docker-compose.yml σε μορφή YAML και να γράψετε τις σχέσεις κλήσης μεταξύ πολλών κοντέινερ.Στη συνέχεια, με μία μόνο εντολή, μπορείτε να ξεκινήσετε/σταματήσετε αυτά τα κοντέινερ ταυτόχρονα
Ο Docker συνιστά να εκτελούμε μόνο μία υπηρεσία σε κάθε κοντέινερ Επειδή το ίδιο το κοντέινερ καταλαμβάνει πολύ λίγους πόρους, είναι καλύτερο να διαχωρίσουμε κάθε υπηρεσία ξεχωριστά.
Εάν χρειάζεται να αναπτύξω πολλές υπηρεσίες ταυτόχρονα, πρέπει να γράψω ένα ξεχωριστό αρχείο Docker για κάθε υπηρεσία και στη συνέχεια να δημιουργήσω την εικόνα και το κοντέινερ. .
Για παράδειγμα, για την υλοποίηση ενός έργου microservice Ιστού, εκτός από το ίδιο το κοντέινερ της υπηρεσίας Web, είναι συχνά απαραίτητο να προστεθεί το back-end βάση δεδομένων mysql service container, ο διακομιστής redis, το κέντρο εγγραφής eureka, ακόμη και τα κοντέινερ εξισορρόπησης φορτίου κ.λπ. . . . . .
Το Compose επιτρέπει στους χρήστες να ορίσουν ένα σύνολο συσχετισμένων κοντέινερ εφαρμογών ως έργο μέσω ενός ξεχωριστού αρχείου προτύπου docker-compose.yml (μορφή YAML).
Μπορείτε εύκολα να ορίσετε μια εφαρμογή πολλαπλών κοντέινερ με ένα αρχείο διαμόρφωσης και, στη συνέχεια, να χρησιμοποιήσετε μια μεμονωμένη εντολή για να εγκαταστήσετε όλες τις εξαρτήσεις της εφαρμογής και να ολοκληρώσετε τη δημιουργία. Το Docker-Compose λύνει το πρόβλημα του τρόπου διαχείρισης και ενορχήστρωσης κοντέινερ.
Διεύθυνση ταχείας λήψης
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Προσθήκη εκτελέσιμων δικαιωμάτων
chmod +x /usr/local/bin/docker-compose
Ελέγξτε εάν η εγκατάσταση είναι επιτυχής
docker-compose --version
απεγκατάσταση
sudo rm / usr/ local/ bin/docker-compose
Τρία βήματα για να χρησιμοποιήσετε το Compose
Γράψτε το Dockerfile για να ορίσετε κάθε εφαρμογή microservice και να δημιουργήσετε το αντίστοιχο αρχείο εικόνας
Χρησιμοποιήστε το docker-compose.yml για να ορίσετε μια πλήρη επιχειρηματική μονάδα και να οργανώσετε διάφορες υπηρεσίες κοντέινερ στη συνολική εφαρμογή.
Τέλος, εκτελέστε την εντολή docker-compose up για να ξεκινήσετε και να εκτελέσετε ολόκληρη την εφαρμογή για να ολοκληρώσετε την ανάπτυξη με ένα κλικ και να συνδεθείτε στο διαδίκτυο.
Σύνταξη κοινών εντολών
docker-compose -h # Προβολή βοήθειας
docker-compose up # Εκκίνηση όλων των υπηρεσιών docker-compose
docker-compose up -d # Ξεκινήστε όλες τις υπηρεσίες docker-compose και εκτελέστε τις στο παρασκήνιο
docker-compose down # Διακοπή και διαγραφή κοντέινερ, δικτύων, τόμων και εικόνων.
Το αναγνωριστικό υπηρεσίας στο docker-compose exec yml # Εισαγάγετε μέσα στην παρουσία του κοντέινερ
docker-compose exec docker-compose.yml αρχείο γραπτής ταυτότητας υπηρεσίας /bin/bash
docker-compose ps # Εμφάνιση όλων των εκτελούμενων κοντέινερ που ενορχηστρώνονται αυτήν τη στιγμή από το docker-compose
docker-compose top # Εμφάνιση των τρεχουσών διεργασιών κοντέινερ που ενορχηστρώνονται από το docker-compose
Αναγνωριστικό υπηρεσίας στα αρχεία καταγραφής docker-compose yml # Προβολή αρχείου καταγραφής εξόδου κοντέινερ
docker-compose config # Ελέγξτε τη διαμόρφωση
docker-compose config -q # Ελέγξτε τη διαμόρφωση και την έξοδο μόνο εάν υπάρχουν προβλήματα
επανεκκίνηση docker-compose # Επανεκκινήστε την υπηρεσία
docker-compose start # Εκκίνηση της υπηρεσίας
docker-compose stop # Διακοπή της υπηρεσίας
εγκατάσταση εντολών docker-machine
base=https://get.daocloud.io/docker/machine/releases/download/v0.14.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
1) Στην εικονική μηχανή Linux, ρυθμίστε τη διεύθυνση IP σε 192.168.90.215 (x είναι τα 3 τελευταία ψηφία του φοιτητικού σας ID, το y καθορίζεται από εσάς) και η εικονική μηχανή μπορεί να έχει πρόσβαση στο Διαδίκτυο κανονικά.
2) Διαμορφώστε τον διακομιστή DNS, ο τομέας είναι cr.com (abc είναι τα αρχικά του ονόματός σας), αφού ολοκληρωθεί η διαμόρφωση, χρησιμοποιήστε το nslookup για να επαληθεύσετε την ανάλυση προς τα εμπρός και προς τα πίσω.
3) Διαμορφώστε το LEMP (δηλαδή Nginx + MySQL (MariaDB) + PHP) και αποκτήστε πρόσβαση στο www.cr.com (το abc είναι τα αρχικά σας) μέσω του πραγματικού κεντρικού υπολογιστή για πρόσβαση στο ενσωματωμένο LEMP. (Δεν μπορείτε να τροποποιήσετε το αρχείο hosts για τοπική ανάλυση, αλλά πρέπει να χρησιμοποιήσετε το δικό σας διαμορφωμένο DNS)
Πρώτα διαμορφώστε τη στατική IP για Linux http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (αν δεν μπορεί να ανοίξει, αλλάξτε τη διεύθυνση παρακάτω)
//να κάνω
Επεξεργαστείτε το αρχείο /etc/named.conf
vim /etc/named.conf
Αλλάξτε τις τιμές ακρόασης και ερωτήματος σε οποιαδήποτε
Διαμόρφωση dns για επίλυση του cr.com στο 192.168.90.215
vim /etc/named.rfc1912.zones
Προσθέστε στο τέλος του αρχείου
zone "cr.com" IN {
type master;
file "cr.com.zone";
allow-update { none; };
};
zone "215.90.168.192.in-addr.arpa" IN {
type master;
file "com.cr.loop";
allow-update { none; };
};
:wq για αποθήκευση
Επεξεργαστείτε το αντίστοιχο αρχείο διαμόρφωσης vim /var/named/com.cr.loop
Προσθέστε τα παρακάτω
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR cr.com.
NS ns.cr.com.
ns A 192.168.90.215
201 PTR www.cr.com.
201 PTR email.cr.com.
Επεξεργαστείτε το vim /var/named/cr.com.zone
Προσθέστε τα παρακάτω
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.90.215
AAAA ::1
NS ns.server.com.
ns IN A 192.168.90.215
www IN A 192.168.90.215
email IN A 192.168.90.215
Επανεκκινήστε το dns
systemctl restart named
Προβολή κατάστασης dns
systemctl status named
Ξεκίνησε με επιτυχία
Προώθηση ανάλυσης nslookup cr.com
Αντίστροφη ανάλυση nslookup 192.168.90.215
Γράψτε το αρχείο docker-compose.yml στο /mydocker/lemp
vim /mydocker/lemp/docker-compose.yml συμπληρώστε το παρακάτω περιεχόμενο
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
app:
image: php:7.0-fpm
volumes:
- .:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: bookmarks
MYSQL_USER: cr
MYSQL_PASSWORD: cr123
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
Δημιουργία nginx/Dockerfile στο /mydocker/lemp/
συμπληρώνω
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
Δημιουργία default.conf
Συμπληρώστε το παρακάτω περιεχόμενο
server {
listen 80 default_server;
root /var/www/html;
index index.html index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
client_max_body_size 100m;
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /.ht {
deny all;
}
}
Δημιουργία php/Dockerfile στο /mydocker/lemp/
συμπληρώνω
FROM php:7.0-fpm
RUN docker-php-ext-install mysqli
Ενορχηστρώστε τα κοντέινερ docker
docker-compose up -d
Docker ps για να δείτε την κατάσταση λειτουργίας του κοντέινερ
Ξεκίνησε με επιτυχία
Αυτό το μηχάνημα έχει πρόσβαση στο περιβάλλον php και στο περιβάλλον nginx μέσω IP
Επιτυχής πρόσβαση
Διαμορφώστε τον τοπικό διακομιστή dns ως εικονική μηχανή, ο οποίος είναι 192.168.90.215
Ανοίξτε το παράθυρο cmd και εκτελέστε μια δοκιμή ping στο cr.com
Έγινε επιτυχής ping
Πρόσβαση στο ενσωματωμένο περιβάλλον php μέσω ονόματος τομέα
Τροποποιήστε το αρχείο διαμόρφωσης nginx
Το τελικό όνομα τομέα έχει απευθείας πρόσβαση στον ιστότοπο