Docker Compose ist ins­be­son­de­re für die Ent­wick­lung und Test­um­ge­bun­gen geeignet, aber auch für kleinere Pro­duk­ti­ons­ein­sät­ze. Wir erklären Ihnen, wie Sie unter Ubuntu mit Compose Docker-An­wen­dun­gen einfach or­ches­trie­ren können.

Was sind die Vor­aus­set­zun­gen für Docker Compose auf Ubuntu?

Bevor Sie Docker Compose verwenden können, müssen Sie si­cher­stel­len, dass Ihr System die folgenden Vor­aus­set­zun­gen erfüllt:

  • Docker Engine: Compose ist eine Er­wei­te­rung der Docker Engine, die Sie in­stal­lie­ren müssen.
  • Be­triebs­sys­tem: Ubuntu, sudo-Benutzer mit Root-Rechten
Tipp

Wenn Sie ein anderes Be­triebs­sys­tem als Linux benutzen wollen, lesen Sie in unserem Ratgeber, wie Sie Docker Compose auf Windows und Docker Compose auf macOS in­stal­lie­ren.

Schritt-für-Schritt-Anleitung: Die Docker-Compose-Ubuntu-In­stal­la­ti­on

Um Docker Compose auf Ubuntu zu verwenden, müssen Sie zunächst die Docker Engine auf Ihrem System in­stal­lie­ren und prüfen, dass sie ord­nungs­ge­mäß aus­ge­führt wird. Sobald Docker läuft, können Sie Compose her­un­ter­la­den und die YAML-Datei für die Kon­fi­gu­ra­ti­on Ihrer An­wen­dun­gen erstellen.

Schritt 1: Docker Compose her­un­ter­la­den und in­stal­lie­ren

Laden Sie die neueste Version von Docker Compose aus dem of­fi­zi­el­len GitHub-Re­po­si­to­ry herunter, indem Sie das folgende Kommando in ein Terminal eingeben:

$ curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
shell

Danach können Sie Docker Compose Aus­füh­rungs­rech­te erteilen:

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

Mit der Option --version über­prü­fen Sie, ob Compose er­folg­reich in­stal­liert wurde.

$ docker-compose --version
shell

Sie erhalten folgenden Output:

Bild: Docker Compose Version
Wenn Ihnen die Ver­si­ons­num­mer angezeigt wird, wurde Docker Compose er­folg­reich in­stal­liert.

Falls die In­stal­la­ti­on scheitert, sollten Sie den Pfad kon­trol­lie­ren.

Sie können auch eine sym­bo­li­sche Ver­knüp­fung zum Pfad /usr/bin her­stel­len:

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
shell

Schritt 2: Die Datei docker-compose.yml kon­fi­gu­rie­ren

Um den Entwurf einer Docker-Compose-YAML-Datei zu de­mons­trie­ren, verwenden wir für die Container-Umgebung das Nginx-Image vom of­fi­zi­el­len Docker Hub.

Erstellen Sie zuerst einen neuen Ordner in Ihrem Home-Ver­zeich­nis:

$ mkdir ~/compose-test
shell

Wechseln Sie in das Ver­zeich­nis und legen Sie hierin einen neuen Ordner für das Root-Ver­zeich­nis Ihrer Nginx-Umgebung an.

$ cd ~/compose-test
$ mkdir app
shell

Sie können einen be­lie­bi­gen Text-Editor wie nano verwenden, um eine index.html zu erstellen.

$ nano app/index.html
shell

Hier sehen Sie den HTML-Code für eine Bei­spiel­sei­te:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Test</title>
</head>
<body>
    <h1>This is a Docker Compose Test Page for an Nginx container.</h1>
</body>
</html>
html

Speichern und schließen Sie die HTML-Datei und erstellen Sie nun docker-compose.yml.

$ nano docker-compose.yml
shell

Die Inhalte gliedern sich in die Ver­si­ons­num­mer der Kon­fi­gu­ra­ti­on und den Services-Block.

version: '3.9'
services:
    web:
        image: nginx:alpine
        ports:
            - "8000:80"
        volumes:
- ./app:/usr/share/nginx/html
YAML

Im Services-Block ist „web“ als einziger Dienst auf­ge­lis­tet. Danach folgen das ver­wen­de­te Nginx-Image und die Port­um­lei­tung. In unserem Fall werden alle Anfragen an Port 8000 auf der Host-Maschine an den Web-Container auf Port 80, wo Nginx läuft, wei­ter­ge­lei­tet. Des Weiteren benutzen wir ein geteiltes Volume zwischen dem Host und dem Container. Dadurch wird der lokale Ordner „app“ für die Nginx-Anwendung zu­gäng­lich.

Schritt 3: Docker Compose ausführen

Mit dem folgenden Kommando erstellen wir einen Web-Container und führen die Container-Umgebung im Hin­ter­grund aus:

$ docker-compose up -d
shell

Ist das in der YAML-Datei an­ge­ge­be­ne Image nicht auf dem lokalen System verfügbar, wird es au­to­ma­tisch her­un­ter­ge­la­den.

Um zu testen, ob die Nginx-Umgebung läuft, können Sie den Befehl ps eingeben.

$ docker-compose ps
shell

Die Bei­spiel­sei­te, die Sie zuvor erstellt haben, ist nun auf localhost:8000 er­reich­bar, wenn Sie die Demo lokal auf Ihrem Rechner ausführen. Falls Sie einen Remote-Server verwenden, geben Sie statt „localhost“ einfach die IP-Adresse Ihres Servers an.

Bild: Docker Compose Beispielseite
Bei­spiel­sei­te für einen Nginx-Container

Mit stop können Sie die Container-Anwendung wieder beenden.

$ docker-compose stop
shell
Tipp

Unser Docker-Tutorial und unsere Übersicht der Docker-Befehle können Ihnen beim Einstieg in das Container-Tool helfen. Lernen Sie außerdem mehr über die Docker-Or­chestra­ti­on mit Swarm und Compose.

Zum Hauptmenü