Docker ist eine Containerisierungsplattform, mit der Sie Anwendungen schnell als tragbare, autarke Container erstellen, testen und bereitstellen können, die praktisch überall ausgeführt werden können.
Docker Compose ist ein Tool, mit dem Sie Docker-Anwendungen mit mehreren Containern definieren und orchestrieren können. Es verwendet eine YAML-Datei, um die Container, Netzwerke und Volumes der Anwendung zu konfigurieren.
Compose kann für verschiedene Zwecke verwendet werden. Bereitstellungen von Einzelhostanwendungen, automatisierte Tests und lokale Entwicklung sind die beliebtesten Anwendungsfälle für Docker Compose.
Dieses Tutorial erklärt, wie Sie die neueste Version von Docker Compose auf Debian 10, Buster installieren. Wir werden auch die grundlegenden Docker Compose-Konzepte und -Befehle untersuchen.
Voraussetzungen #
Bevor Sie fortfahren, vergewissern Sie sich, dass Sie die folgenden Voraussetzungen erfüllt haben:
- Als Benutzer mit sudo-Berechtigungen angemeldet.
- Sie haben Docker auf Ihrem Debian 10-Rechner installiert.
Installieren von Docker Compose unter Debian 10 #
Das Docker Compose-Installationspaket ist in den offiziellen Debian 10-Repositories verfügbar, aber es ist möglicherweise nicht immer die neueste Version. Der empfohlene Ansatz besteht darin, Docker Compose aus dem GitHub-Repository von Docker zu installieren.
Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste stabile Version von Docker Compose Version 1.23.1
. Besuchen Sie vor dem Herunterladen der Compose-Binärdatei die Release-Seite des Compose-Repositorys auf GitHub und prüfen Sie, ob eine neue Version zum Herunterladen verfügbar ist.
Verwenden Sie die folgenden Schritte, um die neueste Version von Docker Compose auf Debian 10 zu installieren:
-
Laden Sie die Docker Compose-Binärdatei in
/usr/local/bin
herunter Verzeichnis mitwget
odercurl
:sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
Verwenden Sie
chmod
um die Compose-Binärdatei ausführbar zu machen:sudo chmod +x /usr/local/bin/docker-compose
-
Um die Installation zu überprüfen, verwenden Sie den folgenden Befehl, der die Compose-Version druckt:
docker-compose --version
Die Ausgabe sieht in etwa so aus:
docker-compose version 1.23.1, build b02f1306
Erste Schritte mit Docker Compose #
In diesem Abschnitt zeigen wir, wie Sie mit Docker Compose eine lokale WordPress-Entwicklungsumgebung einrichten.
Erstellen Sie ein Verzeichnis für das Projekt und navigieren Sie darin:
mkdir wordpress_app && cd wordpress_app
Öffnen Sie Ihren Texteditor und erstellen Sie eine Datei namens docker-compose.yml
:
nano docker-compose.yml
Fügen Sie den folgenden Inhalt ein:
docker-compose.ymlversion: '3.7'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress
restart: always
volumes:
- ./wp_data:/var/www/html
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
volumes:
db_data:
wp_data:
Lassen Sie uns den Code Zeile für Zeile erklären
Die erste Zeile gibt die Compose-Dateiversion an. Es gibt mehrere verschiedene Versionen des Compose-Dateiformats mit Unterstützung für bestimmte Docker-Versionen.
Als nächstes definieren wir zwei Dienste, db
und wordpress
. Jeder Dienst erstellt einen separaten Container, wenn Docker Compose ausgeführt wird.
Die db
Dienst:
- Das Bild ist auf
mysql:8.0
eingestellt Bild. Wenn das Image nicht vorhanden ist, zieht Compose es aus dem öffentlichen Docker Hub-Repository. Die Zeile, die mitcommand
beginnt überschreibt den Standardbefehl. - Der
restart: always
Die Richtlinie weist Compose an, den Container neu zu starten, wenn er ausfällt. - Der Container verwendet ein benanntes Volume
db_data
um die Datenbank zu persistieren. - Definiert die Umgebungsvariablen für
mysql:8.0
Bild.
Die wordpress
Dienst:
- Verwendet
wordpress
Bild. - Mountt die
wp_data
Verzeichnis auf dem Host nach/var/lib/mysql
im Behälter. - Leitet den exponierten Port
80
weiter auf dem Container auf Port8080
auf dem Host-Rechner. - Definiert die Umgebungsvariablen für
wordpress
Bild. - Der
depends_on
ab Instruktion definiert die Abhängigkeit zwischen den beiden Diensten. In diesem Beispieldb
wird vorwordpress
gestartet .
Starten Sie im Projektverzeichnis den WordPress-Stack, indem Sie den folgenden Befehl ausführen:
docker-compose up
Die Ausgabe sollte in etwa so aussehen:
...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
db_1_99946702ac7e | 2019-12-15T21:37:29.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
...
Docker Compose zieht die Bilder, startet die Container und erstellt die wp_data
Verzeichnis in Ihrem Projektverzeichnis.
Geben Sie http://0.0.0.0:8080/
ein in Ihrem Browser und Sie sehen den Standard-WordPress-Installationsbildschirm.
An diesem Punkt ist die WordPress-Anwendung betriebsbereit und Sie können damit beginnen, daran zu arbeiten.
Um Compose zu stoppen, drücken Sie CTRL+C
.
Sie können Compose auch in einem getrennten Modus starten, indem Sie -d
verwenden Möglichkeit:
docker-compose up -d
Um die laufenden Docker-Container anzuzeigen, verwenden Sie den folgenden Befehl:
docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_99946702ac7e docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
wordpress_app_wordpress_1_a428d8408817 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
Um die Dienste zu stoppen, wenn Compose im getrennten Modus ausgeführt wird, verwenden Sie:
docker-compose stop
Wenn Sie die Container vollständig entfernen möchten, verwenden Sie den down
Möglichkeit:
docker-compose down
Übergeben der --volumes
Schalten Sie auch das Datenvolumen entfernen:
docker-compose down --volumes
Docker Compose deinstallieren #
Wenn Sie Docker Compose deinstallieren müssen, können Sie die Binärdatei einfach entfernen, indem Sie Folgendes eingeben:
sudo rm /usr/local/bin/docker-compose