Docker Schnellstartanleitung: Arbeiten mit Images und Containern

Erfahren Sie, wie Sie mit Docker-Containern und -Images arbeiten. In diesem Artikel werden wir grundlegende Docker-Befehle und Informationen behandeln.

Hinweis: Für alle Cloud Server mit Plesk sollten Anwendungen wie Docker immer über die Plesk-Schnittstelle installiert und verwaltet werden. Siehe unseren Artikel Verwenden Sie Docker auf einem Cloud Server mit Plesk für eine Schritt-für-Schritt-Anleitung.

Anforderungen

  • IONOS Linux Cloud Server
  • Docker installiert und läuft

Terminologie: Container vs. Image

Neue Docker-Benutzer fragen oft, was der Unterschied zwischen einem Docker-Container und einem Docker-Image ist.

Ein Docker-Image ist eine Sammlung von Änderungen und Parametern des Dateisystems. Es ist eine Momentaufnahme eines Systems.

Ein Docker-Container ist eine laufende Instanz, die mit einem Docker-Image gestartet wurde.

Sicheres Arbeiten mit Docker ohne Sudo

Der Docker-Daemon läuft als root, was bedeutet, dass Benutzer sudo verwenden müssen, um Docker-Befehle auszuführen.

Um nicht für jeden Docker-Befehl sudo verwenden zu müssen, fügen Sie einfach Ihre Benutzer mit folgendem Befehl zur Docker-Gruppe hinzu:

usermod -aG docker [username]

Wenn Sie beispielsweise den Benutzer jdoe zur Docker-Gruppe hinzufügen, muss dieser Benutzer nicht mehr sudo für jeden Docker-Befehl verwenden. Um den Benutzer zur Gruppe hinzuzufügen, verwenden Sie den Befehl:

usermod -aG docker jdoe

Ein Docker-Image finden

Der erste Schritt beim Ausführen von Docker besteht darin, das zu verwendende Image zu finden.

Ein Docker-Image auf der Docker-Website finden

Es gibt viele vorgefertigte Images, die auf der Docker-Website verfügbar sind. Sie können sie von der Kommandozeile aus mit dem Docker-Suchbefehl finden.

Um beispielsweise nach einem CentOS-Image zu suchen, führen Sie den folgenden Befehl aus:

sudo docker search centos | more

Es wird eine Liste aller CentOS-Images angezeigt, die auf der Docker-Website verfügbar sind.

Finden eines Docker-Images auf Ihrem System

Um alle auf Ihrem System verfügbaren Images aufzulisten, führen Sie den folgenden Befehl aus:

sudo docker images

Herunterladen eines Docker-Images

Um Docker verwenden zu können, benötigen Sie auf Ihrem Host-Computer ein Image, mit dem Docker einen Container starten kann. Dies können Sie mit dem Befehl tun:

sudo docker pull [image name]

Wie im vorherigen Abschnitt beschrieben, können Sie den Namen des Images mit dem Befehl docker search suchen.

Wenn Sie zum Beispiel mit dem Befehl docker search centos | more nach einem CentOS-Image suchen, ist das erste Ergebnis der offizielle CentOS-Image, ein Image namens centos.

Docker search for CentOS image

Um dieses Image herunterzuladen, führen Sie den folgenden Befehl aus:

sudo docker pull centos

Ausführen eines Docker-Containers

Sie können einen Basiscontainer mit einer Bash-Shell mit nur einem Befehl einrichten:

sudo docker run --name [container name] -i -t [image name] /bin/bash

Um beispielsweise einen Basiscontainer mit dem Namen `test_centos_container` mit dem CentOS 7 Build einzurichten, den wir im vorherigen Abschnitt heruntergeladen haben, führen Sie den folgenden Befehl aus:

sudo docker run --name test_centos_container -i -t centos /bin/bash

Hinweis: Das Flag -i hängt stdin und stdout an und das Flag -t weist tty zu.

Nachdem Sie diesen Befehl ausgeführt haben, verwenden Sie eine Bash-Shell in einem CentOS 7 Docker-Container.

Um den Container zu trennen bzw. Verbindung zu lösen, verwenden Sie die Escape-Sequenz Ctrl-p + Ctrl-q.

Verwendung von Docker-Container-Namen

Wenn Sie keinen Namen für Ihren Docker-Container angeben, generiert Docker zufällig einen für Sie. Obwohl keine Namen erforderlich sind, können sie praktische Möglichkeiten sein, um Ihre Docker-Container zu identifizieren.

Wir empfehlen, das Flag --name zu verwenden, wenn Sie einen Docker-Container ausführen, und einen nützlichen Namen für Ihren Container zu wählen. So ist beispielsweise my_container_3 ein weniger nützlicher Name als centos_with_firewall_configured oder ubuntu_with_lamp_stack.

Trennen (Lösen) von einem Docker-Container

Um die Verbindung zur Shell zu trennen oder sie zu lösen, ohne sie zu verlassen, verwenden Sie die Escape-Sequenz Ctrl-p + Ctrl-q.

Verbindung zu einem laufenden Container herstellen

Wenn sie mit einem bereits laufenden Docker Container arbeiten möchten, können Sie den Befehl "attach" verwenden, um eine Verbindung zu einer bash Shell des Containers herzustellen.

sudo docker exec -it [container ID or name] bash

Hinweis: Sie können alle Continer-Namen und Ids mit dem Befehl ps -a auflisten. 

Verwenden Sie zum Beispiel den folgenden Befehl, um sich mit einer bash Shell auf dem soeben erstellten test_centos_container zu verbinden:

sudo docker exec -it test_centos_container bash

Um die Verbindung zum Container zu trennen (zu lösen), verwenden Sie die Escape-Sequenz Ctrl-p + Ctrl-q.

Auflistung von Docker Containern

Mit dem folgenden Befehl können Sie alle laufenden und nicht laufenden Container auflisten:

sudo docker ps -a 

Anhalten eines laufenden Docker-Containers

Um den Prozess eines Containers zu stoppen, verwenden Sie den folgenden Befehl:

sudo docker stop [container ID or name]

Hinweis: Sie können alle Container-IDs und -namen mit dem Befehl docker ps -a auflisten.

Um beispielsweise den zuvor erstellten Container test_centos_container zu stoppen, führen Sie diesen Befehl aus:

sudo docker stop test_centos_container

Starten eines gestoppten Docker-Containers

Manchmal stoppt ein Container, entweder weil Sie ihn gestoppt haben, oder weil sein Prozess beendet ist. In diesem Fall können Sie den Container mit der Container-ID oder dem Namen erneut ausführen.

sudo docker start [container ID or name]

Hinweis: Sie können alle Container-IDs und -namen mit dem Befehl docker ps -a auflisten.

Um beispielsweise den zuvor gestoppten Container test_centos_container zu starten, führen Sie diesen Befehl aus:

sudo docker start test_centos_container

Speichern eines Docker-Containers als Image

Wenn Sie die Änderungen, die Sie an einem laufenden Container vorgenommen haben, speichern möchten, verwenden Sie Docker Commit, um den Container als Image zu speichern.

sudo docker commit [container ID or name] [image name]

Hinweis: Sie können alle Container-IDs und -namen mit dem Befehl docker ps -a auflisten.

Um beispielsweise den laufenden Container test_centos_container als Image mit dem Namen test_centos_image zu speichern, führen Sie den folgenden Befehl aus:

sudo docker commit test_centos_container test_centos_image

Dies führt zu einem Image namens test_centos_image, das Sie als Container ausführen können. Sie können alle Images auf Ihrem System mit folgendem Befehl auflisten:

sudo docker images

Löschen eines Docker-Containers

Ein gestoppter Docker-Container existiert weiterhin auf Ihrem System. Verwenden Sie den Befehl docker rm, um Ihr System aufzuräumen und unerwünschte Docker-Container zu löschen.

sudo docker rm [container ID or name]

Hinweis: Sie können alle Container-IDs und -namen mit dem Befehl docker ps -a auflisten.

Um beispielsweise den Container mit dem Namen test_centos_container zu löschen, den wir oben erstellt haben, führen Sie den Befehl aus:

sudo docker rm test_centos_container

Löschen eines Docker-Images

Alle Docker-Images, die Sie herunterladen oder erstellen, werden auf Ihrem System gespeichert. Verwenden Sie den Befehl docker rmi, um Ihr System aufzuräumen und unerwünschte Docker-Images zu löschen.

sudo docker rmi [image name]

Hinweis: Sie können alle Container-IDs und -namen mit dem Befehl docker ps -a auflisten.

Um beispielsweise das Image test_centos_image zu löschen, führen Sie folgenden Befehl aus:

sudo docker rmi test_centos_image