Docker ist ein beliebtes Werkzeug für die Entwicklung und den Einsatz von Software in Paketen, die als Container bezeichnet werden. Ubuntu ist eine der beliebtesten Linux-Distributionen und ein Betriebssystem, das von Docker gut unterstützt wird.

Die Installation von Docker unter Ubuntu schafft eine ideale Plattform für deine Entwicklungsprojekte, indem du leichtgewichtige virtuelle Maschinen verwendest, die den Kernel des Ubuntu-Betriebssystems nutzen. In diesem Tutorial erfährst du 4 Möglichkeiten, wie du das erreichen kannst.

Mehr über Docker

Docker hilft dabei, Anwendungen portabel zu machen, indem du sie auf jedem Docker-Host erstellen und ausführen kannst. Ein Container-Image kann ohne Änderungen überall verwendet werden, wo Docker verfügbar ist – von deinem Laptop bis zur Cloud. Das vereinfacht die Arbeit von Entwicklern, da es keine Unterschiede zwischen verschiedenen Laufzeitumgebungen gibt. Das Containerformat lässt sich außerdem leicht auf mehrere physische Maschinen verteilen, sodass du deine Anwendungen bei wechselnden Anforderungen einfach skalieren kannst.

Docker enthält alles, was du brauchst, um Container-Images zu erstellen und auszuführen, egal ob sie von Docker Hub und anderen öffentlichen Registrierungsstellen oder aus deinen eigenen Dockerdateien stammen.

Vorbereitungen für die Installation von Docker unter Ubuntu

Du kannst die neueste Docker-Version auf den Ubuntu-Versionen 18.04, 20.04, 21.10 und 22.04 installieren. Die Architekturen x64_64/AMD64, ARMhf, ARM64 und S390x werden unterstützt.

Es gibt mehrere Möglichkeiten, Docker zu installieren, und deine Wahl hängt von den Funktionen ab, die du brauchst, und von deinem bevorzugten Ansatz für die Paketverwaltung. In diesem Leitfaden lernst du alle möglichen Optionen kennen.

Auswählen eines Docker Flavors

Docker unter Linux wurde traditionell nur auf dem Terminal installiert. Eine funktionierende Installation besteht aus der Docker Engine, einem Daemon, der deine Container ausführt, und dem docker command-line interface (CLI) für die Interaktion mit dem Daemon.

Docker Desktop ist eine alternative Möglichkeit, Docker zu nutzen. Er war bisher nur für Windows und Mac verfügbar und wurde im Mai 2022 auch für Linux eingeführt. Docker Desktop unter Ubuntu erfordert einen AMD64-Prozessor und entweder Ubuntu 21.10 oder 22.04. Er bietet eine grafische Oberfläche zur Verwaltung deiner Container, einen integrierten Kubernetes-Cluster und Unterstützung für Erweiterungen von Drittanbietern. Mit Docker Desktop stehen dir auch die CLIs docker und Docker Compose zur Verfügung.

Docker Desktop unterscheidet sich von der Docker Engine dadurch, dass es eine virtuelle Maschine verwendet, um deine Container auszuführen (deshalb ist Docker Desktop für Windows- und MacOS-Nutzer erforderlich). Obwohl es möglich ist, beide Varianten nebeneinander auf Ubuntu zu verwenden, kann es zu Konflikten zwischen den docker CLI-Versionen kommen. Am besten entscheidest du dich für eine und bleibst bei ihr. Entscheide dich für Docker Engine, wenn du dich in deinem Terminal wohlfühlst und die beste Unterstützung und Leistung haben willst. Die VM von Docker Desktop ist etwas wuchtiger, aber die bessere Wahl, wenn du eine integrierte Benutzeroberfläche möchtest oder Kubernetes nutzen willst.

Installation des Docker Engine unter Ubuntu

Docker Engine ist der Standardweg, um Docker auf Ubuntu auszuführen. Es funktioniert mit allen unterstützten Versionen und Umgebungen, von einem lokalen Ubuntu-Desktop-Rechner bis zu deinem Ubuntu-Server-Cloud-Host. Vergewissere dich, dass du Ubuntu Version 18.04 oder neuer verwendest, bevor du fortfährst.

Docker Engine kann auf 3 verschiedene Arten installiert werden:

  1. Ein offizielles Ubuntu apt Repository
  2. Ein eigenständiges Debian-Paket (.deb)
  3. Ein automatisches Installationsskript

Option 1, das Ubuntu apt Repository, ist die am häufigsten verwendete. Sie fügt Docker zu deiner Paketliste hinzu, so dass du zukünftige Updates einfach über apt upgrade installieren kannst. Option 2 unterstützt keine automatisierten Updates, ist aber ideal für die Installation von Docker auf luftgekühlten Offline-Systemen. Das automatische Installationsskript ist die einfachste Methode, um loszulegen, aber es ist nur für den Einsatz in der Entwicklung konfiguriert. Docker rät davon ab, es in Produktionsumgebungen zu verwenden.

Verwende das apt Repository, wenn du mit einem Produktionssystem arbeitest, einfache Aktualisierungen wünschst oder in allen Umgebungen den gleichen Mechanismus verwenden willst.

Verwende das automatische Installationsskript, wenn du Docker schnell einrichten und auf deinem eigenen Rechner ausprobieren möchtest.

1. Docker über das apt-Repository installieren

Docker veröffentlicht Pakete in seinem eigenen Repository apt. Du musst dieses Repository zu deiner apt Quellenliste hinzufügen, sonst kann deine apt Installation die Docker-Pakete nicht finden.

Beginne damit, deine bestehende Paketliste zu aktualisieren und einige Abhängigkeiten für die folgenden Schritte zu installieren. Die Tools ca-certificates, curl, gnupg und lsb_release werden verwendet, um die richtigen Docker apt Repository-Details und den Signierschlüssel für dein System herunterzuladen. Obwohl du diese Pakete wahrscheinlich schon hast, kann es nicht schaden, sicherzustellen, dass sie verfügbar sind.

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Als Nächstes registrierst du den GPG-Schlüsselring von Docker mit apt. So kann apt die von dir installierten Docker-Pakete validieren.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

Der Befehl curl lädt den GPG-Schlüssel von Docker für Ubuntu herunter, wandelt ihn in die Standard-OpenGPG-Kodierung um und speichert ihn im Keyring-Verzeichnis von apt. Mit chmod werden die Berechtigungen für die Keyring-Datei festgelegt, damit apt sie zuverlässig erkennen kann.

Jetzt kannst du die Docker-Paketquelle zu deinem System hinzufügen. Führe den folgenden Befehl aus:

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Dieser Befehl nutzt die Shell-Ersetzung, um automatisch die Architektur deines Systems zu erkennen, z.B. AMD64 oder ARM64, und lädt die entsprechende Paketliste herunter. Sie wird mit dem zuvor hinzugefügten GPG-Schlüssel verifiziert. Das Repository wird als neue Paketliste innerhalb der apt /etc/apt/sources.list.d directory. hinzugefügt.

Aktualisiere deine Paketlisten erneut, damit apt weiß, dass die Docker-Pakete existieren:

$ sudo apt update

Jetzt kannst du den Befehl apt install verwenden, um die Komponenten von Docker zu deinem System hinzuzufügen. Du installierst die neueste Version von Docker Community Edition (CE). Es gibt drei Pakete zu installieren:

  • docker-ce: der Docker-Engine-Daemon.
  • docker-ce-cli: das Docker CLI, mit dem du interagierst.
  • containerd.iodie Container-Runtime namens containerd, die deine Container startet und ausführt.
$ sudo apt install docker-ce docker-ce-cli containerd.io

2. Installation von Docker mit dem Debian-Paket

Das offizielle .deb Paket ist einfach einzurichten, aber du musst jede neue Veröffentlichung manuell herunterladen und installieren. Die Pakete werden auf einem einfachen Dateiserver gehostet. Gehe zuerst auf die Seite mit den Versionshinweisen von Docker, um die neueste verfügbare Versionsnummer zu finden, z. B. 20.10.20. Als Nächstes gehst du auf die GitHub-Seite von containerd, um auch dort die Versionsnummer zu überprüfen. Sie wird wie 1.6.8 aussehen.

Jetzt kannst du die folgende Befehlsfolge ausführen, um die richtigen Pakete für deine Plattform herunterzuladen. Ersetze <DOCKER_VERSION> und <CONTAINERD_VERSION> durch die aktuellen Versionsnummern von Docker und containerd.

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce-cli_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce-cli.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/containerd.io_<CONTAINERD_VERISON>-1_amd64.deb -o containerd.deb

Du kannst die Dateien auch herunterladen und alle verfügbaren Versionen einsehen, indem du die Verzeichnisliste für deine Ubuntu-Version in deinem Browser aufrufst.

Sobald du die Pakete Docker CE, CLI und containerd heruntergeladen hast, kannst du sie mit dem folgenden Befehl installieren:

$ sudo apt install ./docker-ce.deb ./docker-ce-cli.deb ./containerd.deb

Passe die Dateinamen an, wenn du die Pakete manuell heruntergeladen hast, ohne das oben angegebene Skript zu verwenden.

3. Installation von Docker mit dem Installationsskript

Das praktische Skript von Docker automatisiert die Installation aller Docker-Komponenten. Es ist nicht interaktiv, du kannst dich also zurücklehnen und warten, während dein System für dich vorbereitet wird.

Lade zunächst das Skript herunter:

$ curl -fsSL https://get.docker.com -o get-docker.sh

Führe nun das Skript mit Root-Rechten aus:

$ sudo sh get-docker.sh
Executing docker install script
...

Warte, bis das Skript abgeschlossen ist. Du solltest eine Bestätigungsmeldung sehen, dass Docker installiert ist.

Das Skript ist als Einheitslösung gedacht. Du kannst es nicht anpassen, ohne den Quellcode des Skripts direkt zu ändern. Es ist auch nicht dafür gedacht, Docker-Updates durchzuführen, da es die Abhängigkeiten nicht auf den neuesten Stand bringen kann.

Sicherstellen, dass die Docker Engine unter Ubuntu funktioniert

Egal, welche Installationsmethode du verwendet hast, du solltest sicherstellen, dass alles funktioniert, indem du einen Container startest:

$ sudo docker run hello-world

Du wirst sehen, dass der Docker-Client die hello-world:image aus dem Docker Hub Repository auf deinen Rechner zieht:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
Status: Downloaded newer image for hello-world:latest

Ein neuer Container wird dann automatisch gestartet. Das „hello-world“-Starter-Image ist so konfiguriert, dass es einen einfachen Befehl ausführt, der einige grundlegende Informationen über Docker ausgibt und sich dann sofort wieder beendet:

Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 (amd64)
 3. The Docker daemon created a new container from that image which runs the
 executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
 to your terminal.

Wenn du die oben gezeigte Ausgabe siehst, ist Docker einsatzbereit. Der Daemon hat das hello-world:latest-Image erfolgreich vom Docker Hub geholt und einen Container damit gestartet. Alles ab der Zeile „Hello from Docker“ wurde von dem Prozess innerhalb des Containers ausgegeben.

Docker-Engine-Berechtigungen unter Ubuntu festlegen

Eine neue Docker-Engine-Installation erfordert normalerweise Root-Rechte, um docker CLI-Befehle auszuführen. Du musst jedem Befehl das Präfix sudo voranstellen, was umständlich ist.

Du kannst diese Anforderung umgehen, indem du dich nach der Installation der Docker Engine mit den oben genannten Schritten zur Gruppe docker hinzufügst. Durch diese optionale Änderung erhältst du die Berechtigung, docker Befehle als normaler Benutzer auszuführen, ohne sudo, was deine CLI-Erfahrung vereinfacht.

Vergewissere dich, dass die Benutzergruppe docker existiert:

$ sudo groupadd docker

Dann füge dich selbst zu ihr hinzu:

$ sudo usermod -aG docker $USER

Wenn du zuvor einen docker Befehl mit sudo ausgeführt hast, musst du die Berechtigungen für dein ~/.docker Verzeichnis ändern:

$ sudo chown $USER:$USER /home/$USER/.docker -R
$ sudo chmod g+rwx $HOME/.docker -R

Damit stellst du sicher, dass dein eigenes Benutzerkonto die Dateien in diesem Verzeichnis lesen und schreiben darf.

Melde dich von deinem System ab und wieder an, damit deine neue Gruppenzugehörigkeit wirksam wird. Versuche einen docker Befehl ohne sudo auszuführen:

$ docker run hello-world

Mit diesem Schritt nach der Installation ist der Einrichtungsprozess von Docker unter Ubuntu abgeschlossen. Der Daemon ist bereits so konfiguriert, dass er automatisch startet, sodass du keinen Dienst manuell einrichten musst. Wenn du eine fortgeschrittene Installation planst, kannst du im Docker-Benutzerhandbuch nachlesen, wie du benutzerdefinierte Netzwerk-, Logging- und Volume-Storage-Verwaltung konfigurierst.

Hinzufügen von Docker Compose zu deiner Ubuntu-Installation

Docker Compose ist ein beliebtes Docker-Begleittool, das die Arbeit mit Anwendungen, die mehrere Container verwenden, erleichtert. Während das docker CLI mit jedem Befehl nur einen Container anspricht, kann docker compose mit jeder Aktion mehrere Container starten und stoppen. Das vereinfacht die Verwaltung von Systemen, in denen du getrennte Frontend-, Backend- und Datenbankdienste hast.

Docker Compose ist jetzt als Teil des docker CLI verfügbar. Das Compose V2 Plugin ist im offiziellen Installationsskript für Docker enthalten. Es ist auch unter apt verfügbar, wenn du diese Methode benutzt hast:

$ sudo apt install docker-compose-plugin

Alternativ kannst du das neueste .deb Archiv herunterladen und es manuell installieren:

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb -o docker-compose-plugin.deb
$ sudo apt install -i ./docker-compose-plugin.deb

Überprüfe, ob Compose funktioniert, indem du den Befehl docker compose version ausprobierst:

$ docker compose version
Docker Compose version v2.6.0

Installation von Docker Desktop unter Ubuntu

Während die Docker Engine auf eine reine CLI-Oberfläche beschränkt ist, bietet Docker Desktop eine grafische Verwaltungsoberfläche, integrierte Kubernetes-Unterstützung und optionale Erweiterungen von Drittanbietern, die deine Container-Workflows vereinfachen können. Docker Desktop ist eine gute Wahl, wenn du eine einfache Bedienung an deinem eigenen Arbeitsplatz suchst.

Um Docker Desktop zu installieren, musst du zunächst einige Abhängigkeiten mit apt installieren:

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Als Nächstes führst du die folgenden Befehle aus, um das apt Repository von Docker hinzuzufügen. Obwohl Docker Desktop nicht in diesem Repository enthalten ist, werden die darin enthaltenen Pakete als Abhängigkeiten im Debian-Archiv von Desktop referenziert.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update

Der Befehl curl lädt den GPG-Schlüssel von Docker für Ubuntu herunter, wandelt ihn in die Standard-OpenGPG-Kodierung um und speichert ihn im Verzeichnis apt keyring. Mit chmod werden die Berechtigungen für die Keyring-Datei festgelegt, damit apt sie zuverlässig erkennt.

Lade das Docker Desktop Debian-Archiv über den Link in der Dokumentation herunter. Damit erhältst du die neueste stabile Version von Docker Desktop für Linux. Verwende apt, um das Paket zu installieren, indem du die Versionsnummer einträgst, die du heruntergeladen hast:

$ sudo apt install ./docker-desktop-4.11.0-amd64.deb

Docker Desktop wird nun in deinem App Launcher angezeigt. Benutze deinen Launcher, um Docker Desktop zu starten und die Benutzeroberfläche zu öffnen. Du kannst die Befehle docker, docker compose und kubectl auch in deinem Terminal ausführen. Die Anwendung fügt außerdem ein Menü zu deinem Shell-Tray hinzu, das den aktuellen Status von Docker Desktop anzeigt und mit dem du einige schnelle Aktionen ausführen kannst.

Wenn du Docker Desktop zum ersten Mal startest, wirst du aufgefordert, eine Dienstvereinbarung zu akzeptieren. Klicke auf die Schaltfläche Akzeptieren, wenn du zustimmst, und warte, während Docker Desktop seine virtuelle Maschine startet.

Nach ein paar Augenblicken wird das Dashboard geladen. Es bietet Abkürzungen, um neue Container aus gängigen Images zu erstellen und vermeidet langwierige Terminalbefehle.

Docker Desktop installiert auf Ubuntu
Docker Desktop installiert auf Ubuntu

DevKinsta: Docker Desktop für WordPress

Spezialisierte Lösungen, die auf der Grundlage von Docker aufgebaut sind, machen den Umgang mit bestimmten Technologien noch einfacher. DevKinsta ist ein kostenloses lokales Entwicklungstool für die Erstellung von WordPress-Themes und -Plugins, das Docker nutzt, um deine WordPress-Seiten vollständig zu isolieren und zu sichern. Damit kannst du schnell und einfach ein neues WordPress-Projekt starten und anpassen, ohne selbst Server einrichten zu müssen. Sobald du fertig bist, kannst du deine Website direkt auf die Kinsta-Plattform übertragen und live schalten.

Du kannst DevKinsta auf MacOS, Windows und Ubuntu installieren.

Zusammenfassung

Mit Docker fangen die meisten Entwickler an, Container zu benutzen. Du kannst Docker ganz einfach auf deinem Ubuntu-System installieren, entweder als Docker Engine oder als den neuen Docker Desktop. Sobald du Docker installiert hast, bist du bestens gerüstet, um Container zu bauen und auszuführen. So kannst du die Entwicklung vereinfachen und Diskrepanzen zwischen verschiedenen Umgebungen verringern.

Wenn du WordPress-Themes und -Plugins entwickelst, kannst du mit DevKinsta ganz einfach eine lokale Entwicklungsumgebung erstellen und deine Website bereitstellen.

James Walker

James Walker is the founder of Heron Web, a UK-based software development studio providing bespoke solutions for SMEs. He's experienced in delivering custom software using engineering workflows built around modern DevOps methodologies. James is also a freelance technical writer and has written extensively about the software development lifecycle, current industry trends, and DevOps concepts and technologies.