Der Begriff „Docker” kann sich auf verschiedene Dinge beziehen. Das können sein: ein Open Source Community-Projekt; Tools des Open Source-Projekts; Docker Inc., das Unternehmen, das dieses Projekt hauptsächlich unterstützt; und die Tools, die von Docker offiziell unterstützt werden. Die Tatsache, dass die Technologien und die Firma den gleichen Namen haben, kann verwirrend sein.
Hier ist eine kurze Erklärung:
- Die IT-Software „Docker“ ist eine Containerisierungstechnologie, die die Erstellung und den Betrieb von Linux-Containern ermöglicht.
- Die Open Source Docker-Community arbeitet an der Verbesserung dieser Technologien zum Nutzen aller Anwender – und das umsonst.
- Das Unternehmen Docker Inc. verbessert die Arbeiten der Docker-Community, macht diese sicherer und teilt diese Verbesserungen mit der gesamten Community. Sie unterstützt dann die verbesserten und zuverlässigeren Technologien für Unternehmenskunden.
Mit Docker können Sie Container wie extrem leichtgewichtige, modulare virtuelle Maschinen behandeln. Und mit diesen Containern erhalten Sie Flexibilität – Sie können sie erstellen, einsetzen, kopieren und zwischen Umgebungen bewegen, was wiederum die Optimierung Ihrer Apps für die Cloud unterstützt. Dieses Merkblatt hilft Ihnen bei der Verwaltung von Docker-Containern
Wie funktioniert Docker?
Die Docker-Technologie verwendet den Linux Kernel und seine Funktionen wie Cgroups und namespaces, um Prozesse zu isolieren, damit diese unabhängig voneinander ausgeführt werden können. Diese Unabhängigkeit ist der Zweck der Container – die Fähigkeit, mehrere Prozesse und Apps getrennt voneinander betreiben zu können. So wird Ihre Infrastruktur besser genutzt und gleichzeitig die Sicherheit bewahrt, die sich aus der Arbeit mit getrennten Systemen ergibt.
Containertools, einschließlich Docker, arbeiten mit einem Image-basierten Bereitstellungsmodell. Das macht es einfacher, eine Anwendung oder ein Paket von Services mit all deren Abhängigkeiten in mehreren Umgebungen gemeinsam zu nutzen. Docker automatisiert außerdem die Bereitstellung der Anwendung (oder Kombinationen von Prozessen, die eine Anwendung darstellen) innerhalb dieser Container-Umgebung.
Diese Tools bauen auf Linux-Containern auf – was Docker benutzerfreundlich und einzigartig macht – und geben den Nutzern so nie dagewesenen Zugriff auf Anwendungen. Sie ermöglichen eine deutlich schnellere Bereitstellung und Kontrolle von Versionen sowie deren Verbreitung.
Installation unter Debian / Ubuntu
Es gibt mehrere Möglichkeiten Docker und Linux zu installieren. Zum einen kann man die Installation mit Hilfe eines Snapins starten, oder die Installation Stück für Stück zu Fuß durchführen. Da wir kein Freund von Snapins sind zeigen wir hier, wie die Installation Stück für Stück durchgeführt werden kann.
Wir beschreiben hier die Installation unter unserer Lieblings Distribution Ubuntu.
Voraussetzungen
Um Docker lauffähig zu installieren wird eines der aufgeführten Betriebssysteme benötigt in der 64bit Variante.
- Ubuntu Focal 20.04(LTS)
- Ubuntu Bionic 18.04(LTS)
- Ubuntu Xenial 16.04(LTS)
Der Docker Engine wird auf den Architekturen x86_64 (oder amd64), armhf und arm64 unterstützt.
#Step 1:
Um Docker lauffähig zu installieren müssen wir zu erst alte Versionen deinstallieren falls diese vorhanden sind.
$ sudo apt-get remove docker docker-engine docker.io containerd runc
Es ist in Ordnung, wenn apt-get meldet, dass keines dieser Pakete installiert ist.
Der Inhalt von /var/lib/docker/, einschließlich Bilder, Container, Volumes und Netzwerke, bleibt erhalten. Wenn Sie Ihre vorhandenen Daten nicht sichern müssen und mit einer sauberen Installation beginnen möchten, lesen Sie den Abschnitt Deinstallation der Docker-Engine am Ende dieser Seite.
Unterstützte Speichertreiber
Docker Engine auf Ubuntu unterstützt Overlay2, aufs und btrfs Speichertreiber.
Docker Engine verwendet standardmäßig den Overlay2-Speichertreiber. Wenn Sie stattdessen aufs verwenden müssen, müssen Sie ihn manuell konfigurieren. Siehe Verwendung des AUFS-Speichertreibers
Installationsmethoden
Sie können Docker Engine je nach Bedarf auf unterschiedliche Weise installieren:
Die meisten Benutzer richten Docker Repositories ein und installieren von dort aus, um Installations- und Upgrade-Aufgaben zu erleichtern. Dies ist der empfohlene Ansatz.
Einige Benutzer laden das DEB-Paket herunter und installieren es manuell und verwalten Upgrades vollständig manuell. Dies ist in Situationen wie der Installation von Docker auf luftgestützten Systemen ohne Zugang zum Internet nützlich.
In Test- und Entwicklungsumgebungen entscheiden sich einige Benutzer für die Verwendung automatisierter Komfortskripte zur Installation von Docker.
Installation über das Repository
Bevor Sie Docker Engine zum ersten Mal auf einem neuen Host-Rechner installieren, müssen Sie das Docker-Repository einrichten. Danach können Sie Docker über das Repository installieren und aktualisieren.
EINRICHTEN DES REPOSITORIUMS
Aktualisieren Sie den apt-Paketindex und installieren Sie Pakete, damit apt ein Repository über HTTPS nutzen kann:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
Als nächstes fügen Sie den offiziellen GPG-Schlüssel von Docker hinzu:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Überprüfen Sie, ob Sie jetzt den Schlüssel mit dem Fingerabdruck 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 haben, indem Sie nach den letzten 8 Zeichen des Fingerabdrucks suchen.
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
Verwenden Sie den folgenden Befehl, um das stabile Repository einzurichten. Um das nächtliche oder Test-Repository hinzuzufügen, fügen Sie das Wort nightly oder test (oder beides) nach dem Wort stable in den folgenden Befehlen ein.
Hinweis: Der folgende Unterbefehl lsb_release -cs gibt den Namen Ihrer Ubuntu-Distribution zurück, z.B. xenial. Manchmal müssen Sie in einer Distribution wie Linux Mint möglicherweise $(lsb_release -cs) in Ihre übergeordnete Ubuntu-Distribution ändern. Wenn Sie zum Beispiel Linux Mint Tessa verwenden, könnten Sie bionic verwenden. Docker bietet keine Garantien für ungetestete und nicht unterstützte Ubuntu-Distributionen.
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Docker Engine Installieren Variante 1
Aktualisieren Sie den apt-Paketindex und installieren Sie die neueste Version von Docker Engine und containerd, oder gehen Sie zum nächsten Schritt, um eine bestimmte Version zu installieren:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io Docker-compose
Haben Sie mehrere Docker-Repositorys?
Wichtig
Wenn Sie mehrere Docker-Repositorys aktiviert haben, wird bei der Installation oder Aktualisierung ohne Angabe einer Version im Befehl apt-get install oder apt-get update immer die höchstmögliche Version installiert, was für Ihre Stabilitätsanforderungen möglicherweise nicht geeignet ist.
Docker Engine Installieren Variante 2
$ apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
...
b. Installieren Sie eine bestimmte Version mit der Versionszeichenfolge aus der zweiten Spalte, z.B. 5:18.09.1~3-0~ubuntu-xenial
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
Überprüfen Sie, ob der Docker-Engine korrekt installiert ist, indem Sie das Hello-World-Image ausführen.
$ sudo docker run hello-world
Dieser Befehl lädt ein Testimage herunter und führt es in einem Container aus. Wenn der Container läuft, druckt er eine Informationsmeldung aus und beendet sich.
Docker Engine ist installiert und läuft. Die Docker-Gruppe wird erstellt, aber es werden keine Benutzer hinzugefügt. Sie müssen sudo verwenden, um Docker-Befehle auszuführen. Fahren Sie nach der Installation mit Linux fort, um nicht privilegierten Benutzern die Ausführung von Docker-Befehlen zu ermöglichen und für andere optionale Konfigurationsschritte.
DOCKER-ENGINE AKTUALISIEREN
Um die Docker Engine zu aktualisieren, führen Sie zuerst sudo apt-get update aus, folgen Sie dann den Installationsanweisungen und wählen Sie die neue Version, die Sie installieren möchten.
Installation aus einem Paket
Wenn Sie Docker Engine nicht über das Docker-Repository installieren können, können Sie die .deb-Datei für Ihre Version herunterladen und manuell installieren. Sie müssen jedes Mal eine neue Datei herunterladen, wenn Sie Docker aktualisieren möchten.
Gehen Sie zu https://download.docker.com/linux/ubuntu/dists/, wählen Sie Ihre Ubuntu-Version, dann browsen Sie zu pool/stable/, wählen Sie amd64, armhf oder arm64 und laden Sie die .deb-Datei für die zu installierende Docker Engine-Version herunter.
Hinweis
Um ein Paket nightly oder test (pre-release) zu installieren, ändern Sie das Wort stable in der obigen URL in nightly oder test
Installieren Sie Docker Engine und ändern Sie den Pfad unten in den Pfad, in dem Sie das Docker-Paket heruntergeladen haben.
$ sudo dpkg -i /path/to/package.deb
Der Docker-Daemon startet automatisch.
Überprüfen Sie, ob die Docker-Engine korrekt installiert ist, indem Sie das Hello-World-Image ausführen.
$ sudo docker run hello-world
Dieser Befehl lädt ein Testbild herunter und führt es in einem Container aus. Wenn der Container läuft, druckt er eine Informationsmeldung aus und beendet sich.
Docker Engine ist installiert und läuft. Die Docker-Gruppe wird erstellt, aber es werden keine Benutzer hinzugefügt. Sie müssen sudo verwenden, um Docker-Befehle auszuführen. Fahren Sie mit den Nachinstallationsschritten für Linux fort, um nicht privilegierten Benutzern die Ausführung von Docker-Befehlen zu ermöglichen, sowie mit anderen optionalen Konfigurationsschritten.
DOCKER-ENGINE AKTUALISIEREN
Um die Docker Engine zu aktualisieren, laden Sie die neuere Paketdatei herunter und wiederholen Sie die Installationsprozedur, indem Sie auf die neue Datei zeigen.
Installieren Sie mit dem Komfort-Skript
Docker bietet unter get.docker.com und test.docker.com Komfortskripte zur schnellen und nicht interaktiven Installation von Edge- und Testversionen der Docker Engine – Community in Entwicklungsumgebungen. Der Quellcode für die Skripte befindet sich im docker-install-Repository. Die Verwendung dieser Skripte wird für Produktionsumgebungen nicht empfohlen, und Sie sollten die potenziellen Risiken verstehen, bevor Sie sie verwenden:
Die Skripte benötigen zur Ausführung root- oder sudo-Rechte. Daher sollten Sie die Skripte sorgfältig untersuchen und prüfen, bevor Sie sie ausführen.
Die Skripte versuchen, Ihre Linux-Distribution und -Version zu erkennen und Ihr Paketmanagementsystem für Sie zu konfigurieren. Darüber hinaus erlauben es die Skripte nicht, Installationsparameter anzupassen. Dies kann zu einer nicht unterstützten Konfiguration führen, entweder aus der Sicht von Docker oder nach den Richtlinien und Standards Ihrer eigenen Organisation.
Die Skripte installieren alle Abhängigkeiten und Empfehlungen des Paketmanagers, ohne nach einer Bestätigung zu fragen. Dadurch kann eine große Anzahl von Paketen installiert werden, abhängig von der aktuellen Konfiguration Ihres Host-Rechners.
Das Skript bietet keine Optionen, um anzugeben, welche Version von Docker installiert werden soll, und installiert die neueste Version, die im “Edge”-Kanal veröffentlicht wird.
Verwenden Sie das Komfort-Skript nicht, wenn Docker bereits mit einem anderen Mechanismus auf dem Host-Rechner installiert wurde.
In diesem Beispiel wird das Skript unter get.docker.com verwendet, um die neueste Version von Docker Engine – Community unter Linux zu installieren. Um die neueste Testversion zu installieren, verwenden Sie stattdessen test.docker.com. Ersetzen Sie in jedem der folgenden Befehle jedes Vorkommen von get durch test.
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
<output truncated>
Wenn Sie Docker als Nicht-Root-Benutzer verwenden möchten, sollten Sie jetzt in Erwägung ziehen, Ihren Benutzer der “Docker”-Gruppe hinzuzufügen, und zwar ungef. so.
sudo usermod -aG docker your-user
Denken Sie daran, sich aus- und wieder einzuloggen, damit dies wirksam wird!
WARNUNG
Das Hinzufügen eines Benutzers zur “Docker”-Gruppe gibt ihm die Möglichkeit, Container laufen zu lassen, die verwendet werden können, um Root-Rechte auf dem Docker-Host zu erhalten. Weitere Informationen finden Sie unter Angriffsfläche des Docker-Daemons.
Docker Engine – Community ist installiert. Sie startet automatisch bei DEB-basierten Distributionen. Bei RPM-basierten Distributionen müssen Sie sie manuell mit dem entsprechenden systemctl- oder Service-Befehl starten. Wie aus der Meldung hervorgeht, können Nicht-Root-Benutzer standardmäßig keine Docker-Befehle ausführen.
HINWEIS
Um Docker ohne Root-Rechte zu installieren, siehe Ausführen des Docker-Daemons als Nicht-Root-Benutzer (Rootless-Modus). Der wurzellose Modus ist derzeit als experimentelle Funktion verfügbar.
AKTUALISIEREN SIE DEN DOCKER NACH VERWENDUNG DES KOMFORT-SKRIPTS
Wenn Sie Docker mit dem Komfort-Skript installiert haben, sollten Sie Docker direkt mit Ihrem Paketmanager aktualisieren. Es hat keinen Vorteil, das Komfortskript erneut auszuführen, und es kann Probleme verursachen, wenn es versucht, Repositorys, die dem Host-Rechner bereits hinzugefügt wurden, erneut hinzuzufügen.