Docker Compose in Ubuntu 18.04 installieren

Installationsanleitung für Docker Compose in Ubuntu 18.04

Docker ist eine Software zur Automatisierung der Bereitstellung und Verwaltung von Anwendungen in einer Virtualisierungsumgebung auf Betriebssystemebene. Sie ermöglicht es, eine Anwendung mit ihrer gesamten Umgebung und allen Abhängigkeiten in einem Container zu verpacken, der auf jedes Linux-System mit Kernel-cgroups-Unterstützung portiert werden kann, und stellt eine Verwaltungsumgebung für Container bereit.

file

Compose ist ein Tool zum Erstellen und Ausführen von Docker-Anwendungen mit mehreren Containern. In Compose verwenden Sie eine spezielle Datei, um Ihre Anwendungsdienste zu konfigurieren.

Die Eigenschaften von Compose, die es so effektiv machen:

  • Mehrere isolierte Umgebungen auf einem einzelnen Host
  • Schutz von Volume-Daten bei der Erstellung von Containern
  • Nur geänderte Container werden neu erstellt
  • Übertragung von Variablen zwischen Umgebungen

Stellen Sie vor der Installation von Docker Compose sicher, dass Docker installiert ist. Details zur Installation finden Sie in diesem Handbuch.

Docker Compose installieren

Wir installieren Docker Compose aus dem Docker-Repository auf GitHub. Die folgende Syntax vermeidet den Berechtigungsfehler, der bei der Verwendung von sudo auftreten kann.

Prüfen Sie die aktuelle Version und aktualisieren Sie sie bei Bedarf mit dem folgenden Befehl:

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
root@kvmde67-19464:~# sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
100   638  100   638    0     0   1898      0 --:--:-- --:--:-- --:--:--  1898
100 16.7M 100 16.7M 0 0 5709k 0 0:00:03 0:00:03 --:--:--:-- 9427k

Anschließend passen wir die Berechtigungen an:

sudo chmod +x /usr/local/bin/docker-compose

Dann prüfen wir, ob die Installation erfolgreich war:

docker-compose --version

Sie sehen eine ähnliche Ausgabe:

root@kvmde67-19464:~# docker-compose --version
docker-compose version 1.25.5, build 8a1c60f6

Container mit Docker Compose starten

Die Docker-Registry Docker Hub enthält ein Hello-World-Image, das für Demonstrationen und Tests verwendet wird. Es zeigt die minimalen Konfigurationsparameter, die zum Starten eines Containers mit Docker Compose benötigt werden: eine YAML-Datei, die ein einzelnes Image aufruft.

Erstellen Sie ein Verzeichnis für die YAML-Datei:

mkdir hello-world

Wechseln Sie in dieses Verzeichnis:

cd hello-world

Erstellen Sie anschließend eine YAML-Datei in diesem Verzeichnis:

nano docker-compose.yml

Fügen Sie die folgenden Daten in die Datei ein, speichern Sie sie und schließen Sie den Texteditor:

my-test:
 image: hello-world

Die erste Zeile der YAML-Datei wird als Teil des Container-Namens verwendet. Die zweite Zeile gibt an, welches Image zur Erstellung des Containers verwendet wird. Wenn Sie den Befehl docker-compose up ausführen, sucht er nach dem lokalen Image unter dem angegebenen Namen, also hello-world.

file

Anschließend können Sie die Images auf Ihrem System mit dem Befehl docker images anzeigen:

docker images

Wenn keine lokalen Images vorhanden sind, werden nur die Spaltenüberschriften angezeigt:

REPOSITORY TAG IMAGE ID CREATED SIZE

Führen Sie nun im Verzeichnis ~/hello-world folgenden Befehl aus:

docker-compose up

Nach dem Herunterladen des Images erstellt docker-compose einen Container, platziert das Programm darin und führt das hello-Programm aus:

root@kvmde67-19464:~/hello-world# docker-compose up
Pulling my-test (hello-world:)
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:8e3114318a995a1ee497790535e7b88365222a21771ae7e53687ad76563e8e76
Status: Downloaded newer image for hello-world:latest
Creating hello-world_my-test_1 ... done
Attaching to hello-world_my-test_1
my-test_1 | 
my-test_1 | Hello from Docker!
my-test_1 | This message shows that your installation appears to be working correctly.
my-test_1 | 
my-test_1 | To generate this message, Docker took the following steps:
my-test_1 | 1. The Docker client contacted the Docker daemon.
my-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
my-test_1 | (amd64)
my-test_1 | 3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
my-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
my-test_1 to your terminal.
my-test_1 | 
my-test_1_1 | To try something more ambitious, you can run an Ubuntu container with:
my-test_1 | $ docker run -it ubuntu bash
my-test_1 | 
my-test_1 | Share images, automate workflows, and more with a free Docker ID:
my-test_1 | https://hub.docker.com/
my-test_1 | 
my-test_1 | For more examples and ideas, visit:
my-test_1 | https://docs.docker.com/get-started/
my-test_1 | 
hello-world_my-test_1 exited with code 0

Docker-Container laufen so lange, wie der Befehl aktiv ist. Sobald das hello-Programm beendet ist, stoppt also auch der Container. Wenn wir daher die aktiven Prozesse anzeigen, erscheinen zwar die Spaltenüberschriften, der hello-world-Container taucht in der Liste jedoch nicht auf, da er nicht mehr läuft.

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Mit dem Flag -a lassen sich alle Container anzeigen, nicht nur die aktiven:

docker ps -a
root@kvmde67-19464:~/hello-world# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfaaf998ecd6 hello-world "/hello" 45 seconds ago Exited (0) 43 seconds ago hello-world_my-test_1
Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns