2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Compose ist eine von der Docker Company eingeführte Tool-Software, die mehrere Docker-Container verwalten kann, um eine Anwendung zu bilden. Sie müssen eine Konfigurationsdatei docker-compose.yml im YAML-Format definieren und die Aufrufbeziehungen zwischen mehreren Containern schreiben.Dann können Sie mit nur einem Befehl diese Container gleichzeitig starten/stoppen
Docker empfiehlt, in jedem Container nur einen Dienst auszuführen. Da der Docker-Container selbst nur sehr wenig Ressourcen beansprucht, ist es am besten, jeden Dienst separat zu trennen. Aber dann stehen wir vor einem anderen Problem?
Wenn ich mehrere Dienste gleichzeitig bereitstellen muss, muss ich dann für jeden Dienst eine separate Docker-Datei schreiben und dann das Image und den Container erstellen? Das ist anstrengend, daher stellt uns Docker offiziell das Multi-Service-Bereitstellungstool Docker-Compose zur Verfügung .
Um beispielsweise ein Web-Microservice-Projekt zu implementieren, ist es häufig erforderlich, zusätzlich zum Web-Service-Container selbst den Back-End-Datenbank-MySQL-Service-Container, den Redis-Server, das Registrierungscenter Eureka und sogar Lastausgleichscontainer usw. hinzuzufügen. . . . . .
Mit Compose können Benutzer eine Reihe zugehöriger Anwendungscontainer als Projekt über eine separate Docker-Compose.yml-Vorlagendatei (YAML-Format) definieren.
Sie können ganz einfach eine Multi-Container-Anwendung mit einer Konfigurationsdatei definieren und dann mit einem einzigen Befehl alle Abhängigkeiten der Anwendung installieren und den Build abschließen. Docker-Compose löst das Problem der Verwaltung und Orchestrierung von Containern.
Beschleunigte Download-Adresse
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
Fügen Sie ausführbare Berechtigungen hinzu
chmod +x /usr/local/bin/docker-compose
Überprüfen Sie, ob die Installation erfolgreich war
docker-compose --version
deinstallieren
sudo rm / usr/ local/ bin/docker-compose
Drei Schritte zur Verwendung von Compose
Schreiben Sie eine Docker-Datei, um jede Microservice-Anwendung zu definieren und die entsprechende Image-Datei zu erstellen
Verwenden Sie docker-compose.yml, um eine vollständige Geschäftseinheit zu definieren und verschiedene Containerdienste in der Gesamtanwendung anzuordnen.
Führen Sie abschließend den Befehl docker-compose up aus, um die gesamte Anwendung zu starten und auszuführen, um die Bereitstellung mit einem Klick abzuschließen und online zu gehen.
Verfassen Sie allgemeine Befehle
docker-compose -h # Hilfe anzeigen
docker-compose up # Alle Docker-Compose-Dienste starten
docker-compose up -d # Alle Docker-Compose-Dienste starten und im Hintergrund ausführen
docker-compose down # Stoppen und löschen Sie Container, Netzwerke, Volumes und Bilder.
Die Dienst-ID in docker-compose exec yml # Geben Sie in der Containerinstanz ein
Docker-Compose Exec Docker-Compose.yml Datei geschriebene Dienst-ID /bin/bash
docker-compose ps # Zeigt alle laufenden Container an, die derzeit von Docker-Compose orchestriert werden
docker-compose top # Zeigt die aktuellen Containerprozesse an, die von Docker-Compose orchestriert werden
Dienst-ID in Docker-Compose-Protokollen yml # Container-Ausgabeprotokoll anzeigen
docker-compose config # Konfiguration prüfen
docker-compose config -q # Überprüfen Sie die Konfiguration und Ausgabe nur, wenn es Probleme gibt
docker-compose restart # Starten Sie den Dienst neu
docker-compose start # Starten Sie den Dienst
docker-compose stop # Stoppen Sie den Dienst
Docker-Machine-Befehlsinstallation
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) Konfigurieren Sie in der virtuellen Linux-Maschine die IP-Adresse auf 192.168.90.215 (x sind die letzten drei Ziffern Ihres Studentenausweises, y wird von Ihnen selbst angegeben), und die virtuelle Maschine kann normal auf das Internet zugreifen.
2) Konfigurieren Sie den DNS-Server. Die Domäne lautet cr.com (abc ist der Anfangsbuchstabe Ihres Namens). Verwenden Sie nach Abschluss der Konfiguration nslookup, um die Vorwärts- und Rückwärtsauflösung zu überprüfen.
3) Konfigurieren Sie LEMP (d. h. Nginx + MySQL (MariaDB) + PHP) und greifen Sie auf das erstellte LEMP zu, indem Sie über den echten Host auf www.cr.com (abc sind Ihre Initialen) zugreifen. (Sie können die Hosts-Datei nicht für die lokale Auflösung ändern, sondern müssen Ihr eigenes konfiguriertes DNS verwenden.)
Konfigurieren Sie zunächst eine statische IP für Linux http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (wenn sie nicht geöffnet werden kann, ändern Sie die Adresse unten).
//machen
Bearbeiten Sie die Datei /etc/named.conf
vim /etc/named.conf
Ändern Sie die Abhör- und Abfragewerte in „Beliebig“.
Konfigurieren Sie DNS, um cr.com in 192.168.90.215 aufzulösen
vim /etc/named.rfc1912.zones
Am Ende der Datei hinzufügen
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 zum Speichern
Bearbeiten Sie die entsprechende Konfigurationsdatei vim /var/named/com.cr.loop
Fügen Sie Folgendes hinzu
$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.
Bearbeiten Sie vim /var/named/cr.com.zone
Fügen Sie Folgendes hinzu
$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 neu starten
systemctl restart named
DNS-Status anzeigen
systemctl status named
Erfolgreich gestartet
Vorwärtsanalyse von nslookup cr.com
Umgekehrtes Parsen von nslookup 192.168.90.215
Schreiben Sie die Datei docker-compose.yml nach /mydocker/lemp
vim /mydocker/lemp/docker-compose.yml Füllen Sie den folgenden Inhalt aus
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
Erstellen Sie eine Nginx/Docker-Datei in /mydocker/lemp/
ausfüllen
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
Erstellen Sie die Datei default.conf
Füllen Sie den folgenden Inhalt aus
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;
}
}
Erstellen Sie eine PHP/Docker-Datei in /mydocker/lemp/
ausfüllen
FROM php:7.0-fpm
RUN docker-php-ext-install mysqli
Orchestrieren Sie Docker-Container
docker-compose up -d
Docker ps zum Anzeigen des Container-Ausführungsstatus
Erfolgreich gestartet
Diese Maschine greift über IP auf die PHP-Umgebung und die Nginx-Umgebung zu
Zugriff erfolgreich
Konfigurieren Sie den lokalen DNS-Server als virtuelle Maschine, nämlich 192.168.90.215
Öffnen Sie das cmd-Fenster und führen Sie einen Ping-Test auf cr.com durch
Erfolgreich gepingt
Greifen Sie über den Domänennamen auf die erstellte PHP-Umgebung zu
Ändern Sie die Nginx-Konfigurationsdatei
Der endgültige Domainname greift direkt auf die Website zu