Docker-Container sind heutzutage eine der aufstrebendsten Technologien. Docker-Container werden im Allgemeinen in CI/CD-Plattformen (Continuous Integration/Continuous Deployment) verwendet. Container sind die leichten VMs (Virtual Machines), die die zugrunde liegenden Hypervisor-Ressourcen wie (RAM, CPU, HDD und Kernel) nutzen.
Der Docker-Befehl wird verwendet, um Container und Bilder über die Befehlszeile zu verwalten. In diesem Artikel behandeln wir 20 nützliche Beispiele für Docker-Befehle in Linux. Ich gehe davon aus, dass Docker bereits auf Ihrem Linux-System installiert ist und Ihr normaler Benutzer zur Docker-Gruppe hinzugefügt wurde.
1) Überprüfen Sie die Docker-Version
Die erste wichtige Aufgabe bei der Arbeit an Docker-Containern besteht darin, Ihre Docker-Version zu kennen. Führen Sie den folgenden Docker-Befehl aus, um die Version zu kennen
$ docker --version Docker version 20.10.12, build e91ed57 $
2) Systemweite Informationen anzeigen
Der Befehl „docker info“ wird verwendet, um systemweite Informationen wie das Docker-Stammverzeichnis, die Betriebssystemversion, die Kernel-Version, die Docker-Version, den Arbeitsspeicher, die CPU und die Docker-Registrierung anzuzeigen.
$ docker info
3) Docker-Images durchsuchen
Mit dem Befehl „docker search“ können wir die Docker-Container-Images aus der Docker-Hub-Registrierung durchsuchen. Nehmen wir an, ich möchte nach den neuesten nginx-Docker-Images suchen.
$ docker search nginx
Die Ausgabe des obigen Befehls würde wie folgt aussehen,
4) Docker-Container-Images herunterladen
Der Docker-Pull-Befehl wird verwendet, um Container-Images aus der Docker-Hub-Registrierung herunterzuladen.
Syntax:
$ docker pull
Der Docker-Pull-Befehl versucht immer, die neueste Version des Bildes herunterzuladen, obwohl wir die bestimmte Version des Bildes angeben können. Nehmen wir an, ich möchte die neueste Version des rsyslog-Images herunterladen
$ docker pull nginx Using default tag: latest latest: Pulling from library/nginx 5eb5b503b376: Pull complete 1ae07ab881bd: Pull complete 78091884b7be: Pull complete 091c283c6a66: Pull complete 55de5851019b: Pull complete b559bad762be: Pull complete Digest: sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest $
Herunterladen eines bestimmten Images basierend auf der Version, nehmen wir an, wir möchten Ubuntu:20:04 Docker-Image herunterladen, ausführen
$ docker pull ubuntu:20.04 20.04: Pulling from library/ubuntu 08c01a0ec47e: Pull complete Digest: sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be Status: Downloaded newer image for ubuntu:20.04 docker.io/library/ubuntu:20.04 $
5) Heruntergeladene Docker-Container-Images anzeigen
Da wir wissen, dass das Root-Verzeichnis von Docker „/var/lib/docker“ ist, werden immer dann, wenn wir Bilder mit dem Pull-Befehl von Docker herunterladen, alle Bilder im Root-Verzeichnis von Docker gespeichert.
Um alle heruntergeladenen Docker-Container-Images anzuzeigen, führen Sie
aus$ docker image ls or $ docker images
Ausgabe
6) Docker-Container ausführen
Container werden mit dem Befehl „docker run“ gestartet, nehmen wir an, ich möchte einen Container von einem nginx-Image ausführen.
$ docker run -it -p 9000:80 --name=myapp nginx
Ausgabe
Oben wird ein Container mit dem Namen „myapp“ ausgeführt, und wir legen die Pat-Regel auch so fest, dass jede Anforderung, die an Port 9000 auf dem Docker-Host eingeht, diese Anforderung an den Container myapp auf Port 80 umgeleitet wird. Wenn Sie vielleicht bemerkt haben, dass wir die Konsole direkt nach dem Ausführen des Befehls erhalten. Geben Sie exit ein, um den Container zu stoppen / herunterzufahren, und wenn Sie den Container verlassen möchten, ohne ihn zu stoppen, geben Sie „Strg + P + Q“ ein
Jetzt können Sie mit dem Curl-Befehl
auf Port 9000 auf Ihre Nginx-App zugreifen$ curl http://<Docker-Host-IP-Address>:9000/
7) Container im Trennmodus ausführen
Wir können einen Container im Trennmodus mit der Option -d im Befehl „docker run“ ausführen. Hier bedeutet der Trennmodus, dass wir nach dem Ausführen des Befehls „docker run“ eine Eingabeaufforderung erhalten. Beispiel ist unten gezeigt,
$ docker run -it -d -p 9080:80 --name=myapp2 httpd f7dc2ece64708a9de5e53f341b0c7d17ac9189fb7c99079ad8744348bc5a6faa $
8) Alle laufenden Container anzeigen
Führen Sie den Befehl „docker ps“ aus, um alle laufenden Container anzuzeigen
$ docker ps
Um alle laufenden Container mit beendeten oder gestoppten Containern anzuzeigen, führen Sie
aus$ docker ps -a
9) Container Console-Zugriff
Um Zugriff auf die Containerkonsole zu erhalten, führen Sie den Befehl „docker exec“ aus
[email protected]:~$ docker exec -it myapp /bin/bash [email protected]:/#
Um die Konsole zu verlassen, geben Sie den Exit-Befehl
ein10) Container starten, stoppen, neu starten und beenden
Genau wie virtuelle Maschinen können wir Docker-Container starten, stoppen und neu starten.
Verwenden Sie den folgenden Befehl, um einen laufenden Container zu stoppen
$ docker stop myapp2 myapp2 $
Anstelle des Containernamens können wir auch die Container-ID verwenden
Verwenden Sie den folgenden Befehl, um einen Container zu starten.
$ docker start myapp2 myapp2 $
Verwenden Sie den folgenden Befehl, um einen Container neu zu starten.
$ docker restart myapp2 myapp2 $
Genau wie ein Prozess können wir auch einen Container beenden. Verwenden Sie den folgenden Befehl, um einen Container zu beenden.
[email protected]:~$ docker kill myapp2 myapp2 [email protected]:~$
11) Container entfernen
Docker-Container wird mit dem Befehl „docker rm“ entfernt oder gelöscht. ‚docker rm‘ funktioniert nur, wenn Docker gestoppt/heruntergefahren ist.
Syntax:
$ docker rm {container_name_OR_container_id}
$ docker stop test-app test-app $ docker rm test-app test-app $
Um einen laufenden Container zwangsweise zu entfernen, verwenden Sie die Option „-f“ im Befehl docker rm. Beispiel ist unten gezeigt
$ docker rm -f nginx-app
12) Docker-Container-Images entfernen
Genau wie Container können wir auch Docker-Images löschen oder entfernen. Der Befehl „docker rmi“ wird verwendet, um Docker-Container-Images zu entfernen.
Nehmen wir an, wir möchten ein Docker-Image „Ubuntu:20.04“ löschen, führen Sie
aus$ docker rmi ubuntu:20.04 Untagged: ubuntu:20.04 Untagged: [email protected]:669e010b58baf5beb2836b253c14f7c07a4dc93f474be Deleted: sha256:54c9d81cbb440897908abdcaa98674db831e40a66f704f Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f629593310578d2 $
Im obigen Befehl können wir die Bild-ID anstelle des Bildnamens verwenden
$ docker rmi 54c9d81cbb44
13) Docker-Container-Image speichern und laden
Um ein Docker-Image in einer tar-Datei zu speichern, verwenden Sie den Befehl „docker save“, das Beispiel ist unten gezeigt:
$ docker save nginx -o mynginx.tar $ ls -l mynginx.tar -rw------- 1 sysops sysops 145931776 Feb 5 10:30 mynginx.tar $
Um ein Docker-Image aus einer tar-Datei zu laden, verwenden Sie den Befehl „docker load“
$ docker load -i mynginx.tar Loaded image: nginx:latest $
Hinweis:Diese Befehle sind nützlich, wenn wir ein Docker-Image von einem Docker-Host auf einen anderen übertragen möchten.
14) Kopieren Sie Dateien/Ordner in den Container
Wir können Dateien oder Ordner vom Docker-Host mit dem Befehl „docker cp“ in einen Container kopieren. Im Folgenden kopieren wir den Ordner „mycode“ in den myapp-Container
$ docker cp mycode myapp:/tmp
15) Verlauf eines Docker-Image anzeigen
Der Verlauf des Docker-Images bedeutet hier, welche Befehle beim Erstellen von Docker-Images ausgeführt werden. Wir können diese Befehle mithilfe des „Docker-Verlaufs“ einsehen
Syntax:#
$ Docker-Verlauf {Image_Name_OR_Image_id}
$ docker history nginx
16) Protokolle aus dem Container anzeigen
Wir können die Protokolle aus den Containern anzeigen, ohne uns anzumelden. Führen Sie den Befehl „docker logs“ aus
Syntax:
$ Docker-Protokolle {container_name_or_container_id}
$ docker logs myapp
Um die Live-Protokolle anzuzeigen, verwenden Sie die Option „-f“ im Docker-Protokollbefehl
$ docker logs -f myapp
Um die letzten 10 Protokolle aus einem Container anzuzeigen, führen Sie
aus$ docker logs --tail 10 myapp
17) Ressourcennutzungsstatistik für Container anzeigen
Um die CPU-, Arbeitsspeicher- und Netzwerk-E/A-Nutzung aller Container anzuzeigen, führen Sie den Befehl „docker stats“
aus$ docker stats
Obiger Befehl zeigt Live-Streaming von Ressourcennutzungsstatistiken aller Container.
Um die Statistiken eines bestimmten Containers anzuzeigen, führen Sie docker stats gefolgt von container
aus$ docker stats myapp
Statistiken zur Ressourcennutzung ohne Live-Streaming
$ docker stats --no-stream
Die laufenden Prozesse eines Containers können wir uns mit ‚docker top anzeigen lassen ‘ Befehl.
Syntax:#
Docker-Oberseite {Container_Name_OR_ID}
$ docker top myapp
18) IP-Adresse des Containers anzeigen
Container-Low-Level-Informationen werden mit dem Befehl „docker inspect“ angezeigt. Wir können die IP-Adresse eines Containers mit dem Befehl „docker inspect“ abrufen
Syntax:
$ docker inspect -f ‘{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}’
Beispiel
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myapp 172.17.0.2 $
19) Docker-Container-Image erstellen
Das Docker-Container-Image wird mit dem Befehl „docker build“ erstellt, aber für den Docker-Build-Befehl müssen wir zuerst Dockerfile erstellen. Nehmen wir an, wir Dockerfile wird im mycode-Ordner erstellt und führen dann den folgenden Befehl aus, um das Docker-Image zu erstellen,
$ cd mycode $ docker build -t mynginx:v2 .
Auch lesen :Wie man ein Docker-Image mit Dockerfile erstellt (Schritt für Schritt)
20) Tag auf Docker-Image setzen
Der Befehl ‚docker tag‘ wird verwendet, um das Tag auf ein Bild zu setzen.
Syntax:
$ docker tag source_image{:tag} target_image{:tag}
Angenommen, ich möchte das Tag des Quellbilds „mariadb:latest“ als „mariadb:10.03“
festlegen$ docker tag mariadb:latest mariadb:10.03 $ docker images | grep -i mariadb mariadb 10.03 45a5a43e143a 3 days ago 410MB mariadb latest 45a5a43e143a 3 days ago 410MB $
Wenn Sie ein Bild in Ihre private Registrierung hochladen möchten, markieren Sie das Bild so, dass die Registrierungs-URL dem Projekt und dem Bild folgen sollte.
$ docker tag mariadb:latest myregistry:5000/db/mariadb:10.03
Melden Sie sich jetzt mit dem Befehl „docker login“ bei Ihrer privaten Registrierung an und führen Sie den Docker-Push-Befehl aus, um ihn hochzuladen.
$ docker push myregistry:5000/db/mariadb:10.03
Das ist alles aus diesem Artikel. Ich hoffe, Sie fanden diese Beispiele informativ. Bitte zögern Sie nicht, Ihre Fragen und Kommentare in den Kommentarbereichen unten zu teilen.
Lesen Sie auch :So erstellen und verwenden Sie ein MacVLAN-Netzwerk in Docker