kalafoto - stock.adobe.com
So verwenden Sie Ubuntu mit Docker als Container-Host
Docker ist die ideale Containerplattform für Hosts mit Ubuntu. Das funktioniert direkt auf einer Linux-Maschine, aber auch über das Subsystem für Linux in Windows.
Linux-basierte Serverbetriebssysteme sind schon lange die Norm. Zu diesen zählt auch Ubuntu, das den Vorteil einer zugänglichen grafischen Benutzeroberfläche hat.
Docker ist eine gute Möglichkeit, einen Ubuntu-Server zum Container-Host zu machen. Nutzen Sie für die Installation auf jeden Fall einen Benutzer auf dem Server und nicht direkt das Root-Konto. Das ist eine generelle Empfehlung für die Arbeit mit Linux-Servern; beim Einsatz von virtuellen Servern und Containern ist es aber noch wichtiger, da auch in den Containern und virtuellen Maschinen (VMs) ansonsten Sicherheitslücken entstehen können. Außerdem ist es wichtig, dass auf dem Server eine Firewall aktiv ist.
Vorbereitung und Installation von Docker
Docker ermöglicht über den Docker Hub das Herunterladen von Container-Images, aber auch den Upload. Mit einem kostenlosen Konto gibt Ihnen das auch die Fähigkeit, Images zwischen Servern zu synchronisieren.
Am einfachsten ist die Installation von Docker mit der Paketverwaltung:
sudo apt install docker.io
Um einzustellen, dass Docker in Zukunft immer gemeinsam mit dem Server startet, verwenden Sie folgenden Befehl:
sudo systemctl enable --now docker
Grundsätzlich sollte die Installation von Docker nicht über die Repositories von Ubuntu erfolgen, sondern direkt über die Installationsquellen bei Docker. Das stellt sicher, dass Sie die aktuelle Version nutzen. Eine weitere Möglichkeit ist die Paketverwaltung in Ubuntu, da Sie Docker als Repository hinzufügen können. Dieser Weg ist allerdings etwas komplizierter. Zunächst aktualisieren Sie den Server mit:
sudo apt update
sudo apt upgrade
Danach installieren Sie Voraussetzungen in Ubuntu. Diese sind notwendig, damit das Betriebssystem apt-Pakete über HTTPS herunterladen kann:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Für den Download von Docker müssen Sie den GPG-Schlüssel (Gnu Privacy Guard) für das Docker-Repository in Linux integrieren und danach das Docker-Repository zu den Quellen für die Installation hinzufügen:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Es kann passieren, dass eine Fehlermeldung Ihnen mitteilt, dass apt-key depricated – also der apt-Schlüssel veraltet – ist. Solange die Installation noch problemlos funktioniert, können Sie die Meldung vernachlässigen. Wenn die Integration nicht mehr funktioniert, ist bei Linuxuprising zu lesen, wie Sie Repository Signing Keys integrieren.
Für die Installation auf Ubuntu 20.04 verwenden Sie die folgende Version:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
Ist bereits Ubuntu 21.04 auf dem Computer installiert, wandeln Sie den Befehl folgendermaßen ab:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu hirsuite stable"
Container erstellen und Docker nutzen
Sobald Docker installiert ist, können Sie Container erstellen und nutzen. Es stehen auch einige Beispielcontainer zur Verfügung, mit denen Sie sich einen ersten Überblick verschaffen können. Die installierte Version von Docker kann mit docker --version angezeigt werden. Das Tool docker dient der Verwaltung der Container. Dabei müssen Sie mit sudo arbeiten, oder Sie öffnen mit sudo -i eine Sudo-Shell. Die laufenden Container lassen Sie sich mit docker container ls anzeigen, alternativ mit docker ps.
Für jeden Befehl zeigt Docker eine Hilfe an, wenn Sie den Parameter --help eingeben, zum Beispiel docker run --help.
Um einen Container lokal zu starten, können Sie beispielsweise docker run -dp 80:80 docker/getting-started verwenden. Im Anschluss lädt Docker das Container-Image herunter und startet einen Container.
In diesem Beispielcontainer ist Nginx als Webserver aktiv, auf dem eine Dokumentation für Docker liegt. Der Webserver kann auf dem lokalen Computer durch Eingabe der Adresse localhost gestartet werden. Wenn die Firewall auf dem Linux-Server den Zugriff nicht blockiert, oder Sie eine Portfreigabe für Port 80 erstellt haben, können Sie auch über das Netzwerk mit der IP-Adresse des Hosts auf den Container zugreifen. Sie können beim Erstellen des Containers mit dem Befehl -dp 80:80 festlegen, dass Abfragen zum Port 80 des Container-Hosts zum Port 80 des Containers weitergeleitet werden.
Mit docker ps -a lassen Sie sich die laufenden Container anzeigen sowie deren Daten. Mit docker search <Name> durchsuchen Sie Docker Hub nach Images. Die Images, die Sie auf den Container-Host geladen haben, zeigt der Befehl docker images an. Die Anmeldung am Docker Hub können Sie direkt in der Shell über docker login vornehmen. Der Befehl docker inspect <ID> ruft erweiterte Informationen für Container ab.
Sie können außerdem auf der Basis vorhandener Images Ihre eigenen erstellen und bearbeiten:
docker commit <ID> <Ordner>/meincontainerimage
Das kann zum Beispiel so aussehen:
docker commit 662f25d6d835 joos/joosimageweb
Docker und Container steuern
Soll Docker ein Container-Image aus dem Hub herunterladen, aber nicht gleich starten, erreichen Sie das mit dem Befehl docker pull, zum Beispiel docker pull hello-world. Bei Hello World handelt es sich um einen Beispielcontainer, der nach dem Start Informationen anzeigt, und dem Testen der Docker-Umgebung dient. Möchten Sie den Container starten, geben Sie docker run hello-world ein.
In Docker können auch komplette Linux-Distributionen als Container betrieben werden, zum Beispiel Ubuntu. Mit der Option -it öffnen Sie eine Linux-Shell innerhalb des Containers, -d legt fest, dass der Container im Hintergrund laufen soll.
docker run -it -d ubuntu
Über die ID eines Containers, die Sie beispielsweise mit docker ps abrufen, ist es möglich einen Container zu beenden oder starten, zum Beispiel mit docker stop <ID> und docker start <ID>. Außerdem können Sie diese mit docker rm <ID> löschen.
Dockerfiles nutzen
Dockerfiles erlauben es Admins, Container auf Basis einer Konfigurationsdatei zu erstellen. Die Dateien können Sie wie Container-Images herunterladen und anschließend neue Container aus Ihnen generieren. Das kann beispielsweise so aussehen:
docker build -t meincontainer
Der Befehl wird in dem Verzeichnis gestartet, in dem sich das Dockerfile befindet.