Docker Compose eignet sich her­vor­ra­gend für die Ent­wick­lung und Test­um­ge­bun­gen, ist aber auch für kleinere Pro­duk­tiv­sys­te­me eine gute Wahl. Wir zeigen dir, wie du unter Ubuntu mit Compose Docker-An­wen­dun­gen einfach or­ches­trie­ren kannst.

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

Bevor du mit Docker Compose startest, stelle sicher, dass dein System bereit ist:

  • Docker Engine: Da Compose eine Er­wei­te­rung ist, muss die Docker Engine bereits in­stal­liert sein.
  • Be­triebs­sys­tem: Ubuntu mit einem sudo-User, der über Root-Rechte verfügt.
Tipp

Möchtest du ein anderes Be­triebs­sys­tem nutzen? In unseren Ratgebern erfährst du, wie du Docker Compose auf Windows und Docker Compose auf macOS ein­rich­test.

Schritt-für-Schritt-Anleitung: Docker Compose auf Ubuntu in­stal­lie­ren

Um Docker Compose unter Ubuntu zu nutzen, in­stal­lie­re zuerst die Docker Engine und prüfe deren Status. Sobald Docker glatt läuft, kannst du Compose laden und deine An­wen­dun­gen über eine YAML-Datei kon­fi­gu­rie­ren.

Schritt 1: Docker Compose laden und in­stal­lie­ren

Hol dir die ak­tu­ells­te Version von Docker Compose direkt aus dem of­fi­zi­el­len GitHub-Re­po­si­to­ry mit folgendem Befehl im Terminal:

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

Im Anschluss verleihst du Docker Compose die nötigen Aus­füh­rungs­rech­te:

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

Nutze die Option --version, um zu kon­trol­lie­ren, ob die In­stal­la­ti­on er­folg­reich war.

$ docker-compose --version
shell

Du erhältst eine Ausgabe wie diese:

Bild: Docker Compose Version
Wird die Ver­si­ons­num­mer angezeigt, war die In­stal­la­ti­on von Docker Compose er­folg­reich.

Sollte es Probleme geben, überprüfe bitte den an­ge­ge­be­nen Pfad.

Zu­sätz­lich kannst du eine sym­bo­li­sche Ver­knüp­fung zum Ver­zeich­nis /usr/bin anlegen:

$ 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 Aufbau einer Docker-Compose-YAML-Datei zu zeigen, nutzen wir das Nginx-Image vom Docker Hub für unsere Container-Umgebung.

Erstelle zuerst einen neuen Ordner in deinem Home-Ver­zeich­nis:

$ mkdir ~/compose-test
shell

Wechsle hinein und erstelle dort ein Ver­zeich­nis für das Root-Ver­zeich­nis deiner Nginx-Umgebung.

$ cd ~/compose-test
$ mkdir app
shell

Verwende einen Editor deiner Wahl (z. B. nano), um eine index.html anzulegen.

$ nano app/index.html
shell

Hier ist ein einfacher HTML-Code für deine Testseite:

<!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

Speichere die HTML-Datei ab und erstelle nun die docker-compose.yml.

$ nano docker-compose.yml
shell

Die Datei enthält die Kon­fi­gu­ra­ti­ons­ver­si­on sowie den Services-Block.

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

Hier ist „web“ als Dienst definiert. Wir nutzen das Nginx-Image und eine Port­um­lei­tung: Anfragen an Port 8000 am Host gehen an Port 80 im Container. Zudem nutzen wir ein geteiltes Volume, damit der lokale Ordner „app“ für Nginx er­reich­bar ist.

Schritt 3: Docker Compose starten

Mit diesem Befehl startest du den Web-Container direkt im Hin­ter­grund:

$ docker-compose up -d
shell

Falls das Image noch nicht lokal vorhanden ist, wird es au­to­ma­tisch geladen.

Ob alles läuft, prüfst du ganz einfach mit ps.

$ docker-compose ps
shell

Deine Testseite ist nun unter localhost:8000 er­reich­bar (lokal) oder über die IP-Adresse deines Remote-Servers.

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

Mit stop stoppst du die Anwendung wieder.

$ docker-compose stop
shell
Zum Hauptmenü