Dieses Tutorial setzt die Docker-bezogene Artikelserie fort und behandelt die am häufigsten verwendeten Docker-Befehle. Wir beginnen mit einer kurzen Docker-Übersicht und springen dann zur Installation von Docker auf Ihrem Server. Als Nächstes führen wir Sie durch alle erforderlichen Befehle zum Verwalten von Docker-Containern, -Images und -Volumes. Werden Sie ein professioneller Docker-Benutzer, indem Sie dieser Anleitung in 10 Minuten folgen.
Was ist Docker
Docker ist eine offene Plattform zum Entwickeln, Versenden und Ausführen von Anwendungen. Es ist de facto der Standard für das Packen und Teilen von Apps – vom Desktop bis zur Cloud.
Um sein Ziel zu erreichen, verwendet Docker Container.
Der Container hat die folgenden Eigenschaften:
- Ein Container ist ein Paket für die Software und alle erforderlichen Bibliotheken.
- Sobald ein Container gestartet wird, bestimmt er eine Laufzeitumgebung für Ihre Anwendung.
- Ein Container ist leichter als eine virtuelle Maschine, sodass er viel schneller gestartet werden kann.
- Ein Container wird in Form eines Images verteilt, das aus mehreren Schichten besteht. Mehrere Container können diese Ebenen wiederverwenden.
Mit den oben genannten Funktionen können Sie:
- Erstellen Sie isolierte Umgebungen für die Bereitstellung.
- Starten Sie Ihre Anwendungen in wenigen Minuten.
Docker hilft Ihnen, jeden Schritt des Softwareentwicklungsprozesses zu vereinfachen und zu automatisieren.
Hier sind die wesentlichen Docker-Funktionen:
- Docker hat eine riesige Community.
- Docker ist eine einfache und leichtgewichtige Möglichkeit, Software zu verteilen.
- Docker verfügt über ein riesiges öffentliches Repository mit Containern für alle möglichen Zwecke.
- Docker senkt die Entwicklungs- und Betriebskosten.
- Die Docker-Konfiguration ist einfach und schnell.
- Docker bietet Anwendungsisolierung.
- Docker-Image hat Ebenen, die Versionskontrolle haben.
- Docker automatisiert jeden Schritt der Containerverwaltung.
Sie können Docker auf Linux-, macOS- und Windows-Betriebssystemen installieren.
Installieren Sie Docker
In diesem Abschnitt wird beschrieben, wie Sie das Paket Docker CE (Community Edition) auf einem Linux-Betriebssystem installieren.
Wenn Sie die AWS-Cloud verwenden, empfehle ich einen Artikel über die automatische Installation von Docker auf der EC2-Instanz mit CloudFormation.
Installieren Sie Docker auf Ubuntu/Debian
Standardmäßig enthält das Standard-Repository von Ubuntu oder Debian nicht die neueste Version des Docker CE-Pakets. Sie müssen also das offizielle Docker CE-Repository zu Ihrem System hinzufügen.
Installieren Sie vor dem Hinzufügen des Repositorys einige erforderliche Abhängigkeiten, indem Sie den folgenden Befehl ausführen:
apt-get install apt-transport-https ca-certificates curl software-properties-common curl -y
Importieren Sie nach der Installation aller Abhängigkeiten den Docker-GPG-Schlüssel mit dem folgenden Befehl:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
Fügen Sie als Nächstes das offizielle Docker CE-Repository mit dem folgenden Befehl zur APT-Quelldatei hinzu:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Nachdem das Repository hinzugefügt wurde, müssen Sie den Repository-Cache aktualisieren. Sie können es mit dem folgenden Befehl aktualisieren:
apt-get update -y
Sobald Ihr Repository auf dem neuesten Stand ist, führen Sie den folgenden Befehl aus, um die neueste Version von Docker CE auf Ihrem System zu installieren.
apt-get install docker-ce -y
Der obige Befehl installiert das Docker CE-Paket in Ihrem System und startet den Dienst automatisch.
Sie können die installierte Version von Docker CE überprüfen, indem Sie den folgenden Befehl ausführen:
docker --version
Sie sollten die Docker-Version in der folgenden Ausgabe sehen:
Docker version 19.03.13, build 4484c46d9d
Wenn Sie das Docker-Paket von Ihrem System entfernen möchten, führen Sie den folgenden Befehl aus:
apt-get remove docker-ce
Installieren Sie Docker auf CentOS/RHEL
Für CentOS- oder RHEL-Betriebssysteme müssen Sie das Docker CE-Repo in Ihrem System installieren. Sie können den DNF-Befehl verwenden, um das Docker CE-Repository wie unten gezeigt hinzuzufügen und zu aktivieren:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Sobald das Docker CE-Repository hinzugefügt wurde, können Sie alle verfügbaren Versionen von Docker CE auflisten, indem Sie den folgenden Befehl ausführen:
dnf list docker-ce --showduplicates | sort -r
Sie sollten die vollständige Liste in der folgenden Ausgabe erhalten:
docker-ce.x86_64 3:19.03.13-3.el8 docker-ce-stable
Docker CE Stable - x86_64 54 kB/s | 3.8 kB 00:00
CentOS-8 - Extras 14 kB/s | 8.1 kB 00:00
CentOS-8 - Base 4.6 MB/s | 2.2 MB 00:00
CentOS-8 - AppStream 4.7 MB/s | 5.8 MB 00:01
Available Packages
Installieren Sie als Nächstes die neueste Version von Docker CE, indem Sie den folgenden Befehl ausführen:
dnf install docker-ce --nobest
Überprüfen Sie nach der Installation von Docker die installierte Version mit dem folgenden Befehl:
docker --version
Sie sollten die folgende Ausgabe erhalten:
Docker version 19.03.13, build 4484c46d9d
Führen Sie den folgenden Befehl aus, um den Docker-Dienst zu starten:
systemctl start docker
Führen Sie den folgenden Befehl aus, um den Docker-Dienst zu stoppen:
systemctl stop docker
Sie können auch den folgenden Befehl ausführen, um weitere Informationen zu Docker anzuzeigen:
docker info
Sie sollten die folgende Ausgabe sehen:
Wenn Sie das Docker-Paket von Ihrem System entfernen möchten, führen Sie den folgenden Befehl aus:
dnf remove docker-ce
Container mit Docker verwalten
Der docker container
Der Befehl wird verwendet, um den Lebenszyklus des Containers zu verwalten. Wenn Sie nicht über das Image zum Ausführen des Containers verfügen, wechselt Docker zur Registrierung und lädt es herunter.
Docker-Container ausführen
Verwenden Sie die folgende Syntax, um das Image aus der Docker-Registrierung herunterzuladen und einen Container zu erstellen.
docker container run [your-image-name]
Führen Sie beispielsweise den folgenden Befehl aus, um einen Apache-Webserver-Container zu erstellen:
docker container run httpd
Sie sollten die folgende Ausgabe erhalten:
Sie können die Option --rm
verwenden mit dem Docker-Ausführungsbefehl, um einen Container nach dem Beenden zu entfernen.
docker container run --rm httpd
Mit Docker-Container-Shell verbinden
Sie können die Option -it
verwenden mit dem Docker-Run-Befehl, um den Apache-Container zu erstellen und zu starten und ihn an die interaktive Bash-Shell anzuhängen.
docker container run -it httpd /bin/bash
Sie sollten die folgende Ausgabe erhalten:
Starten Sie den Docker-Container im Hintergrund
Sie können jetzt jeden Befehl innerhalb des Containers ausführen.
Sie können die Option -td
verwenden mit dem Docker-Befehl run, um den Apache-Container zu erstellen, zu starten und am Laufen zu halten.
docker container run -td httpd
Sie sollten die folgende Ausgabe erhalten:
Docker-Containernamen einrichten
Sie können die Option --name
verwenden mit dem Docker-Ausführungsbefehl, um einen Containernamen mit der folgenden Syntax zuzuweisen:
docker container run --name [container-name] -td [image-name]
Erstellen Sie beispielsweise einen neuen Container aus dem Apache-Image und weisen Sie ihm einen Namen apacheweb
zu mit folgendem Befehl:
docker container run --name apacheweb -td httpd
Docker-Container an den spezifischen Port binden
Wenn Sie auf den Containerprozess des externen Computers zugreifen möchten, können Sie einen Containerport für das externe Netzwerk verfügbar machen.
In diesem Fall können Sie die Option -p
verwenden mit dem Docker-Befehl, um den spezifischen Port wie unten gezeigt verfügbar zu machen:
docker container run -p [host-port]:[container-port] --name [container-name] -dit [image-name]
Erstellen Sie beispielsweise einen Apache-Webserver-Container und stellen Sie den Container-Port 80 für Port 8080 bereit mit folgendem Befehl:
docker container run -p 8080:80 --name apacheweb -dt httpd
Sie können jetzt über die URL http://localhost:8080 auf den im Container ausgeführten Apache-Webserver zugreifen .
Alle Docker-Container auflisten
Um alle laufenden und gestoppten Container in Ihrem System aufzulisten, führen Sie den folgenden Befehl aus:
docker ps -a
Sie sollten alle Container in der folgenden Ausgabe sehen:
Führen Sie den folgenden Befehl aus, um nur laufende Container in Ihrem System aufzulisten:
docker ps
Sie können den Container auch mit dem folgenden Befehl auflisten:
docker container ls
Docker-Container-Statistiken anzeigen
Um die Live-Statistiken des laufenden Containers (CPU- und Speicherauslastung, Netzwerk- und Festplatten-E/A) mit dem Namen apacheweb
anzuzeigen , führen Sie den folgenden Befehl aus:
docker stats apacheweb
Sie sollten die folgende Ausgabe sehen:
Alle Docker-Container-Prozesse anzeigen
Zum Auflisten aller laufenden Prozesse innerhalb des laufenden Containers mit dem Namen Apacheweb , führen Sie den folgenden Befehl aus:
docker top apacheweb
Sie sollten die folgende Ausgabe sehen:
Docker-Container-Protokolle anzeigen
Zum Anzeigen der Protokolle des laufenden Containers mit dem Namen Apacheweb , führen Sie den folgenden Befehl aus:
docker logs apacheweb
Sie sollten die folgende Ausgabe sehen:
Starten, Stoppen und Anhalten des Docker-Containers
Um den laufenden Container mit dem Namen Apacheweb zu stoppen , führen Sie den folgenden Befehl aus:
docker container stop apacheweb
Zum Starten des Containers mit dem Namen Apacheweb , führen Sie den folgenden Befehl aus:
docker container start apacheweb
Um den Container mit dem Namen Apacheweb anzuhalten , führen Sie den folgenden Befehl aus:
docker container pause apacheweb
Starten Sie den Docker-Container neu oder beenden Sie ihn
Um den laufenden Container mit dem Namen Apacheweb neu zu starten , führen Sie den folgenden Befehl aus:
docker container restart apacheweb
Um den laufenden Container mit dem Namen Apacheweb zu beenden , führen Sie den folgenden Befehl aus:
docker container kill apacheweb
An bereits laufenden Docker-Container anhängen
Um eine Verbindung zum laufenden Container herzustellen, führen Sie den folgenden Befehl aus:
docker container exec -it apacheweb /bin/bash
Um einen beliebigen Befehl innerhalb des laufenden Containers auszuführen, führen Sie den folgenden Befehl aus:
docker container exec -it apacheweb ls
Docker-Images verwalten
In diesem Abschnitt zeigen wir Ihnen einige am häufigsten verwendete Befehle zum Verwalten des Docker-Images.
Docker-Image aus der Registry herunterladen
Um das Image aus der Docker-Registrierung herunterzuladen oder abzurufen, verwenden Sie die folgende Syntax:
docker pull [image-name]
Beispielsweise können Sie das Nginx-Webserver-Image mit dem folgenden Befehl aus der Docker-Registrierung abrufen:
docker pull nginx
Sie sollten die folgende Ausgabe erhalten:
Docker-Image in die Registry hochladen
Wenn Sie ein vorhandenes Image in die Docker-Registrierung hochladen möchten, verwenden Sie die folgende Syntax:
docker push [image-name]
Melden Sie sich bei Docker The Registry an
Zuerst müssen Sie sich mit dem folgenden Befehl bei der Docker-Registrierung anmelden:
docker login
Führen Sie nach der Anmeldung den folgenden Befehl aus, um die ID des Nginx-Images abzurufen, und markieren Sie das Image mit dem folgenden Befehl:
docker images
Ausgabe:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f35646e83998 3 weeks ago 133MB
httpd latest 3dd970e6b110 3 weeks ago 138MB
Tag zu Docker-Image hinzufügen
Markieren Sie als Nächstes das Bild mit dem folgenden Befehl:
docker tag f35646e83998 amaksimov/nginx
Wo:
f35646e83998
ist die Bild-ID amaksimov ist der Name der Docker-Registrierung und nginx ist der Name des Bildes.
Als nächstes übertragen Sie das Nginx-Image mit dem folgenden Befehl in die Docker-Registrierung:
docker push amaksimov/nginx
Sie sollten die folgende Ausgabe sehen:
Docker-Image aus laufendem Container erstellen
Sie können auch ein Image aus einem vorhandenen Container erstellen, indem Sie die folgende Syntax verwenden:
docker commit [container-name] [new-image-name]
Um beispielsweise ein Image aus dem Apache-Container zu erstellen, führen Sie den folgenden Befehl aus:
docker commit apacheweb apache-image
Um Ihr vorhandenes Bild im tar-Archiv zu speichern, führen Sie den folgenden Befehl aus:
docker save apache-image > apache-image.tar
Geschichte des Docker-Images
Sie können den Verlauf eines beliebigen Docker-Images mit dem folgenden Befehl drucken:
docker history apache-image
Sie sollten die folgende Ausgabe erhalten:
Docker-Image löschen
Sie können jedes Docker-Image mit der folgenden Syntax entfernen:
docker rmi [image-name]
Wenn Sie beispielsweise das Apache-Image entfernen möchten, müssen Sie den Container stoppen, der httpd
verwendet Bild:
docker container stop apacheweb
docker rm apacheweb
Zuerst müssen wir apache-image
löschen Bild:
docker rmi apache-image
Erst danach entfernen wir den httpd
Bild mit dem folgenden Befehl:
docker rmi httpd
Im Laufe der Zeit können manuell erstellte Images und Container einiges an Chaos auf Ihrem Server anrichten. Bitte werfen Sie einen Blick auf unsere Docker-FAQ, um herauszufinden, wie Sie alles bereinigen können.
Docker-Volumes verwalten
Wenn Sie einen neuen Container erstellen, einige Daten speichern und den Container löschen, gehen Daten verloren. In diesem Fall können Sie auf dem Hostsystem ein Volume erstellen und einen Container mit diesem Volume starten. Nach dem Löschen des Containers können Sie die Daten vom Volume abrufen. Sie können das Docker-Volume auch verwenden, um die Daten zwischen mehreren Containern zu teilen.
In diesem Abschnitt verwenden wir einige am häufigsten verwendete docker volume
Befehle mit Beispielen.
Docker-Volume erstellen
So erstellen Sie ein neues Volume mit dem Namen datavolume
mit folgendem Befehl:
docker volume create datavolume
Alle Docker-Volumes auflisten
Führen Sie den folgenden Befehl aus, um Ihr erstelltes Volume aufzulisten:
docker volume ls
Sie sollten die folgende Ausgabe sehen:
Docker-Volume-Informationen drucken
Führen Sie den folgenden Befehl aus, um weitere Informationen zum Volumen zu drucken:
docker inspect datavolume
Sie sollten die folgende Ausgabe sehen:
Volume in Docker-Container mounten
Führen Sie den folgenden Befehl aus, um einen neuen Container mit dem Namen Apacheweb zu erstellen und das Datenvolume auf dem Hostsystem in das Verzeichnis /mnt des Containers einzuhängen:
docker run -it --name apacheweb1 --mount source=datavolume,destination=/mnt -td httpd
Remote-Docker-Volume
Führen Sie den folgenden Befehl aus, um das Volume zu entfernen:
docker volume rm datavolume
Docker-FAQ
So löschen Sie nicht verwendete Docker-Images
Um alle ungenutzten Docker-Images zu löschen, müssen Sie den folgenden Befehl ausführen:
docker rmi $(docker images -a -q)
So entfernen Sie alle beendeten Docker-Container
Alle beendeten Docker-Container können durch Ausführen des folgenden Befehls entfernt werden:
docker rm $(docker ps -a -f status=exited -q)
So stoppen und entfernen Sie alle Docker-Container
Um alle Docker-Container zu stoppen, müssen Sie Folgendes ausführen:
docker stop $(docker ps -a -q)
Um alle angehaltenen Docker-Container zu löschen, müssen Sie Folgendes ausführen:
docker rm $(docker ps -a -q)
So löschen Sie alle nicht verwendeten Docker-Images, Container, Volumes, Netzwerke
Um alle ungenutzten Docker-Ressourcen zu löschen, können Sie den folgenden Befehl verwenden:
docker system prune
Führen Sie den folgenden Befehl aus, um alle Docker-Ressourcen vollständig zu löschen (verwendet und nicht verwendet):
docker system prune -a
Zusammenfassung
In der obigen Anleitung haben Sie die am häufigsten verwendeten Docker-Befehle und ihre Verwendung anhand von Beispielen kennengelernt. Ich hoffe, dies hilft Ihnen bei der Durchführung alltäglicher Aufgaben.