Ein einfaches Docker Compose-Projekt vorbereiten
In diesem Schritt bereiten wir ein einfaches Docker Compose-Projekt vor. Docker Compose ist ein Tool zum Definieren und Ausführen von Multi-Container-Docker-Anwendungen. Mit Compose verwenden Sie eine YAML-Datei, um die Services Ihrer Anwendung zu konfigurieren. Anschließend können Sie mit einem einzigen Befehl alle Services aus Ihrer Konfiguration erstellen und starten.
Da Docker Compose in der LabEx-Umgebung nicht vorinstalliert ist, müssen wir es zunächst installieren. Wir werden die Docker Compose-Binärdatei herunterladen und ausführbar machen.
Zuerst laden wir die Docker Compose-Binärdatei herunter. Wir verwenden curl
, um die neueste stabile Version herunterzuladen.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Dieser Befehl lädt die Docker Compose-Binärdatei für Ihre Systemarchitektur herunter und speichert sie unter /usr/local/bin/docker-compose
.
Als nächstes müssen wir die heruntergeladene Binärdatei ausführbar machen.
sudo chmod +x /usr/local/bin/docker-compose
Dieser Befehl fügt die Ausführungsberechtigungen für die Docker Compose-Binärdatei hinzu.
Nun überprüfen wir die Installation, indem wir die Docker Compose-Version abfragen.
docker-compose --version
In der Ausgabe sollte die installierte Docker Compose-Version erscheinen, was die erfolgreiche Installation bestätigt.
Nachdem Docker Compose nun installiert ist, erstellen wir ein einfaches Docker Compose-Projekt. Wir legen ein Verzeichnis für unser Projekt an und erstellen darin eine docker-compose.yml
-Datei.
Zuerst erstellen wir ein Verzeichnis namens my-compose-app
in Ihrem Home-Verzeichnis.
mkdir ~/project/my-compose-app
Wechseln Sie in das neu erstellte Verzeichnis.
cd ~/project/my-compose-app
Nun erstellen wir eine docker-compose.yml
-Datei. Diese Datei definiert die Services für unsere Anwendung. Wir verwenden nano
, um die Datei zu erstellen und zu bearbeiten.
nano docker-compose.yml
Fügen Sie im nano
-Editor folgenden Inhalt ein:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: ubuntu:latest
command: tail -f /dev/null
Lassen Sie uns diese docker-compose.yml
-Datei aufschlüsseln:
version: '3.8'
gibt die Docker Compose-Dateiformatversion an.
services:
definiert die Services, aus denen Ihre Anwendung besteht.
web:
definiert einen Service namens web
.
image: nginx:latest
gibt an, dass dieser Service das nginx:latest
-Docker-Image verwendet. Falls das Image lokal nicht verfügbar ist, lädt Docker Compose es von Docker Hub herunter.
ports:
bildet Port 80 auf dem Host-Rechner auf Port 80 im web
-Container ab.
app:
definiert einen Service namens app
.
image: ubuntu:latest
gibt an, dass dieser Service das ubuntu:latest
-Docker-Image verwendet.
command: tail -f /dev/null
spezifiziert den Befehl, der beim Start des app
-Containers ausgeführt wird. Dieser Befehl hält den Container unendlich lange am Laufen, ohne ihn zu beenden.
Speichern Sie die Datei mit Strg + X
, dann Y
und anschließend Enter
.
Bevor wir die Services starten können, sollten wir sicherstellen, dass die benötigten Docker-Images verfügbar sind. Obwohl Docker Compose fehlende Images automatisch herunterlädt, ist es eine gute Praxis, sie vorab explizit zu pullen – besonders in Umgebungen mit eingeschränktem Internetzugang oder für einen schnelleren Start.
Laden wir zunächst das nginx:latest
-Image herunter.
docker pull nginx:latest
Dieser Befehl lädt das nginx:latest
-Image von Docker Hub herunter.
Als nächstes laden wir das ubuntu:latest
-Image herunter.
docker pull ubuntu:latest
Dieser Befehl lädt das ubuntu:latest
-Image von Docker Hub herunter.
Sie haben nun erfolgreich ein einfaches Docker Compose-Projekt mit zwei Services (web
und app
) vorbereitet und die benötigten Docker-Images heruntergeladen.