Dieses ausführliche Docker-Tutorial behandelt die Grundlagen der Docker-Befehle, z. B. wie Sie einen neuen Container erstellen, den Container ausführen, einen Container entfernen, Ihr eigenes Docker-Image aus dem Container erstellen und so weiter. Fangen wir an!
Wenn Sie Docker noch nicht installiert haben, lesen Sie die folgenden Anleitungen:
- So installieren Sie Docker in CentOS
- So installieren Sie Docker in Ubuntu
Erste Schritte mit Docker unter Linux
Alle unten aufgeführten Schritte wurden in Ubuntu 18.04 LTS Server Edition getestet.
Bevor ich mit Docker beginne, möchte ich klären, was ein Docker-Image und ein Docker-Container sind.
Ein Docker-Image ist die Datei, die entscheidet, wie sich ein Container verhalten soll, und ein Docker-Container ist die laufende oder angehaltene Phase eines Docker-Images.
Die Container sind von den restlichen Dateien des Hosts isoliert.
Wenn wir einen Docker-Container ausführen, verwendet er ein isoliertes Dateisystem, das von einem Docker-Image bereitgestellt wird. Das Docker-Image besteht aus allem, was zum Ausführen einer Anwendung benötigt wird – alle Abhängigkeiten, Konfigurationen, Skripte, Binärdateien usw.
Das Image enthält auch andere Konfigurationen für den Container, wie z. B. Umgebungsvariablen, einen auszuführenden Standardbefehl und andere Metadaten.
1. Docker-Images durchsuchen
Wir können die Images von beiden aus der Registrierung abrufen, zum Beispiel Docker Hub , oder erstellen Sie unser eigenes. Für diejenigen, die sich fragen, Docker Hub ist ein zentrales Online-Repository, in dem alle Docker-Benutzer ihre Docker-Images erstellen, testen und speichern.
Docker Hub hat Zehntausende von Docker-Images. Sie können mit "docker search"
nach beliebigen Docker-Images suchen Befehl.
Um beispielsweise nach Ubuntu-basierten Docker-Images zu suchen, führen Sie Folgendes aus:
$ sudo docker search ubuntu
Beispielausgabe:
Um Bilder basierend auf CentOS zu suchen, führen Sie Folgendes aus:
$ sudo docker search ubuntu
Um Bilder für AWS zu suchen, führen Sie Folgendes aus:
$ sudo docker search aws
Für WordPress:
$ sudo docker search wordpress
Docker Hub hat fast alle Arten von Images. Sei es ein Betriebssystem, eine Anwendung oder irgendetwas anderes, Sie finden vorgefertigte Docker-Images im Docker-Hub.
Wenn etwas, wonach Sie suchen, nicht verfügbar ist, können Sie es erstellen und öffentlich verfügbar machen oder für Ihren eigenen Gebrauch privat halten.
2. Docker-Image herunterladen
Um das Docker-Image für Ubuntu OS herunterzuladen, führen Sie den folgenden Befehl im Terminal aus:
$ sudo docker pull ubuntu
Der obige Befehl lädt das neueste Ubuntu-Image vom Docker-Hub herunter .
Beispielausgabe:
Verwenden von Standard -Tag:letztendlich:Ziehen Sie aus Bibliothek/Ubuntu6abc03819f3e:Pull Complete 05731E63F211:Pull Complete 0BD67C50D6BE COMPLETTSie können auch eine bestimmte Version des Ubuntu-Images mit folgendem Befehl herunterladen:
$ docker pull ubuntu:18.04Docker ermöglicht es uns, beliebige Images herunterzuladen und den Container unabhängig vom Host-Betriebssystem zu starten.
Um beispielsweise das CentOS-Image herunterzuladen, führen Sie Folgendes aus:
$ sudo docker pull centosAlle heruntergeladenen Docker-Images werden in
/var/lib/docker/
gespeichert Verzeichnis.Um die Liste der heruntergeladenen Docker-Images anzuzeigen, führen Sie Folgendes aus:
$ sudo Docker-BilderBeispielausgabe:
REPOSITORY TAG BILD-ID ERSTELLT GRÖSSEubuntu neustes 7698f282e524 vor 14 Stunden 69.9MBcentos neustes 9f38484d220f vor 2 Monaten 202MBhello-world neustes fce289e99eb9 vor 4 Monaten 1.84kBWie Sie oben sehen, habe ich drei Docker-Images heruntergeladen - Ubuntu , CentOS und Hallo Welt .
Lassen Sie uns nun fortfahren und sehen, wie die Container basierend auf den heruntergeladenen Bildern gestartet oder ausgeführt werden.
3. Docker-Container ausführen
Wir können einen Container auf zwei Arten starten – entweder mit seinem TAG oder BILD-ID .
TAG bezieht sich auf einen bestimmten Schnappschuss des Bildes und die BILD-ID ist die entsprechende eindeutige Kennung für dieses Bild.
Wie Sie in den obigen Ergebnissen
"latest"
finden ist das TAG für alle Container und7698f282e524
ist die IMAGE-ID von Ubuntu Docker-Image,9f38484d220f
ist die Image-ID des CentOS-Docker-Images undfce289e99eb9
ist die Bild-ID von hello_world Docker-Image.Nachdem Sie die Docker-Images Ihrer Wahl heruntergeladen haben, führen Sie den folgenden Befehl aus, um einen Docker-Container mit seinem TAG zu starten.
$ sudo docker run -t -i ubuntu:latest /bin/bashHier,
-t
:Weist ein neues Pseudo-Terminal innerhalb des Ubuntu-Containers zu.-i
: Ermöglicht es uns, eine interaktive Verbindung herzustellen, indem wir den Standard in (STDIN) des Containers abrufen.ubuntu:latest
:Ubuntu-Container mit TAG "neueste"./bin/bash
:BASH-Shell für den neuen Container.
Oder Sie können den Container wie unten gezeigt mit der IMAGE ID starten:
$ sudo docker run -t -i 7698f282e524 /bin/bash
Hier,
- 7698f282e524 - Bild-ID
Nach dem Start des Containers landen Sie automatisch in der Shell des Containers (Eingabeaufforderung):
Um zum Terminal des Hostsystems zurückzukehren (in meinem Fall ist es Ubuntu 18.04 LTS), ohne den Container (Gastbetriebssystem) zu beenden, drücken Sie CTRL+P
gefolgt von CTRL+Q
.
Jetzt kehren Sie sicher zum Terminalfenster Ihres ursprünglichen Host-Computers zurück. Bitte beachten Sie, dass der Container immer noch im Hintergrund läuft und wir ihn noch nicht beendet haben.
Führen Sie den folgenden Befehl aus, um die Liste der ausgeführten Container anzuzeigen:
$ sudo docker ps
Beispielausgabe:
CONTAINER ID IMAGE BEFEHL ERSTELLT STATUS PORTS NAMEN32fc32ad0d54 ubuntu:latest "/bin/bash" vor 7 Minuten Up 7 Minuten modest_jones
Hier,
32fc32ad0d54
- Container-IDubuntu:latest
- Docker-Image
Bitte beachten Sie, dass Container-ID und Docker-Image-ID unterschiedlich sind .
Um alle verfügbaren (laufenden oder angehaltenen) Container aufzulisten, führen Sie Folgendes aus:
$ sudo docker ps -a
Führen Sie den folgenden Befehl aus, um von der Shell des Hosts aus zu stoppen (den Container auszuschalten):
$ sudo docker stop
Beispiel:
$ sudo docker stop 32fc32ad0d54
Um sich wieder beim laufenden Container anzumelden oder ihn anzuhängen, führen Sie einfach Folgendes aus:
$ sudo Docker anhängen 32fc32ad0d54
Wie Sie bereits wissen, 32fc32ad0d54
ist die ID des Containers.
Um einen Container aus seiner Shell heraus auszuschalten, geben Sie den folgenden Befehl ein:
# Ausfahrt
Sie können die Liste der laufenden Container mit folgendem Befehl überprüfen:
$ sudo docker ps
4. Erstellen Sie Ihre benutzerdefinierten Docker-Images
Docker dient nicht nur zum Herunterladen und Verwenden der vorhandenen Container. Sie können auch Ihr eigenes benutzerdefiniertes Docker-Image erstellen.
Starten Sie dazu einen Container:
$ sudo docker run -t -i ubuntu:latest /bin/bash
Jetzt befinden Sie sich in der Shell des Containers.
Installieren Sie dann beliebige Software oder tun Sie, was immer Sie im Container tun möchten.
Lassen Sie uns beispielsweise den Apache-Webserver installieren im Behälter.
# apt update# apt install apache2
Installieren und testen Sie auf ähnliche Weise beliebige Software Ihrer Wahl im Container.
Wenn Sie fertig sind, kehren Sie zur Shell des Hostsystems zurück. Stoppen Sie den Container nicht und schalten Sie ihn nicht aus. Um zur Shell des Hostsystems zu wechseln, ohne Container zu stoppen, drücken Sie CTRL+P
gefolgt von CTRL+Q
.
Führen Sie in der Shell Ihres Host-Computers den folgenden Befehl aus, um die Container-ID zu finden:
$ sudo docker ps
Erstellen Sie schließlich ein Docker-Image des laufenden Containers mit dem Befehl:
$ sudo docker commit 3d24b3de0bfc ostechnix/ubuntu_apache
Beispielausgabe:
sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962
Hier,
3d24b3de0bfc
– Ubuntu-Container-ID.ostechnix
– Name des Benutzers, der den Container erstellt hat.ubuntu_apache
– Name des vom Benutzer ostechnix erstellten Docker-Images.
Lassen Sie uns mit dem Befehl prüfen, ob das neue Docker-Image erstellt wurde oder nicht:
$ sudo Docker-Bilder
Beispielausgabe:
REPOSITORY TAG BILD-ID GRÖSSE ERSTELLTostechnix/ubuntu_apache neustes ce5aa74a48f1 Vor etwa einer Minute 191 MB ubuntu neuste 7698f282e524 vor 15 Stunden 69.9MBcentos neuste 9f38484d220f vor 2 Monaten 202MBhello-world neuste fce289e99eb9 vor 4 Monaten 1.84kB
Wie Sie in der obigen Ausgabe sehen, wurde das neue Docker-Image in unserem localhost-System aus dem laufenden Container erstellt.
Nun können Sie aus dem neu erstellten Docker-Image wie gewohnt mit dem Befehl:
einen neuen Container erstellen$ sudo docker run -t -i ostechnix/ubuntu_apache /bin/bash
5. Container entfernen
Sobald Sie alle Forschung und Entwicklung mit Docker-Containern abgeschlossen haben, können Sie sie löschen, wenn Sie sie nicht mehr benötigen.
Dazu müssen wir zuerst die laufenden Container stoppen (ausschalten).
Lassen Sie uns die laufenden Container mit dem Befehl herausfinden:
$ sudo docker ps
Beispielausgabe:
CONTAINER ID IMAGE BEFEHL ERSTELLT STATUS PORTS NAMEN3d24b3de0bfc ubuntu:latest "/bin/bash" vor 28 Minuten Up 28 Minuten goofy_easley
Beenden Sie den laufenden Container mit seiner ID:
$ sudo docker stop 3d24b3de0bfc
Löschen Sie nun den Container mit dem Befehl:
$ sudo docker rm 3d24b3de0bfc
Stoppen Sie auf ähnliche Weise alle Container und löschen Sie sie, wenn sie nicht mehr benötigt werden.
Das Löschen mehrerer Container nacheinander kann eine mühsame Aufgabe sein. Wir können also alle angehaltenen Container auf einmal löschen, führen Sie einfach Folgendes aus:
$ sudo docker container prune
Geben Sie "Y"
ein und drücken Sie ENTER
Taste, um die Container zu löschen.
WARNUNG! Dadurch werden alle angehaltenen Container entfernt. Möchten Sie wirklich fortfahren? [j/N] j Gelöschte Container:32fc32ad0d5445f2dfd0d46121251c7b5a2aea06bb22588fb2594ddbe46e65645ec614e0302061469ece212f0dba303c8fe99889389749e6220fe891997f38d0Gesamt zurückgeforderter Speicherplatz:5 vorab zurückgeforderter SpeicherplatzDieser Befehl funktioniert nur mit den neuesten Docker-Versionen.
6. Docker-Images entfernen
Nachdem Sie Container entfernt haben, können Sie die nicht mehr benötigten Docker-Images löschen.
So finden Sie die Liste der heruntergeladenen Docker-Images:
$ sudo Docker-BilderBeispielausgabe:
REPOSITORY TAG IMAGE ID CREATED SIZEostechnix/ubuntu_apache neustes ce5aa74a48f1 vor 5 Minuten 191MBubuntu neustes 7698f282e524 vor 15 Stunden 69.9MBcentos neustes 9f38484d220f vor 2 Monaten 202MBhello-world neustes fce289e99eb9 vor 4 MonatenB 1.8kWie Sie oben sehen, haben wir drei Docker-Images in unserem Hostsystem.
Lassen Sie uns sie löschen, indem wir ihre IMAGE-ID verwenden:
$ sudo docker rmi ce5aa74a48f1Beispielausgabe:
Untagged:ostechnix / ubuntu_apache:latestDeleted:sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:sha256:d21c926f11a64b811dc75391bbe0191b50b8fe142419f7616b3cee70229f14cdFehlerbehebung
Docker lässt Sie die Docker-Images nicht löschen, wenn sie von laufenden oder angehaltenen Containern verwendet werden.
Wenn ich beispielsweise versuche, ein Docker-Image mit der ID
b72889fa879c
zu löschen , von einem meiner alten Ubuntu-Server. Ich habe den folgenden Fehler:Fehlerantwort vom Daemon:Konflikt:b72889fa879c kann nicht gelöscht werden (muss erzwungen werden) – Bild wird von gestopptem Container dde4dd285377 verwendetDies liegt daran, dass das Docker-Image, das Sie löschen möchten, derzeit von einem anderen Container verwendet wird.
Lassen Sie uns also den laufenden Container mit dem Befehl:
überprüfen$ sudo docker psBeispielausgabe:
Hoppla! Es gibt keinen laufenden Container.
Lassen Sie uns erneut nach allen Containern (Running und Stopped) mit dem Befehl:
suchen$ sudo docker ps -aBeispielausgabe:
Wie Sie sehen, verwenden immer noch einige angehaltene Container eines der Docker-Images. Lassen Sie uns also alle Container löschen.
Beispiel:
$ sudo docker rm 12e892156219Entfernen Sie auf ähnliche Weise alle Container wie oben gezeigt, indem Sie die jeweilige Container-ID verwenden.
Nachdem Sie alle Container gelöscht haben, entfernen Sie abschließend die Docker-Images.
Beispiel:
$ sudo docker rmi b72889fa879cDas ist es. Überprüfen Sie nun mit dem Befehl:
, ob es noch andere Docker-Images auf dem Host gibt$ sudo Docker-BilderSie werden jetzt wahrscheinlich keine Docker-Bilder mehr sehen.
Weiterlesen:
- Erläuterung von Docker-Netzwerkkonzepten
- Erklärung von Docker-Volumes mit Beispielen
- Eine kurze Einführung in Dockerfile
- Erste Schritte mit Docker Compose unter Linux
- So führen Sie Docker als Nicht-Root-Benutzer unter Linux aus
- Podman-Tutorial – Erste Schritte mit Podman
Schlussfolgerung
In diesem umfassenden Tutorial zu den ersten Schritten mit Docker haben wir Docker-Grundlagen wie das Erstellen, Ausführen, Suchen, Entfernen von Containern und auch das Erstellen eines eigenen Docker-Images aus dem Container erklärt.
Ich hoffe, Sie haben die Grundidee zur Docker-Nutzung verstanden.
Weitere Einzelheiten finden Sie unter den offiziellen Ressourcenlinks am Ende dieses Leitfadens oder hinterlassen Sie einen Kommentar im Kommentarbereich unten.
Laden Sie kostenlose Docker-E-Books herunter:
Download - Free eBook: "Docker Containerization Cookbook"
Download - Free Guide: "Understanding Docker"
Download - Free Guide: "What is Docker and Why is it So Popular?"
Download - Free Guide: "Introduction to Docker"
Download - Free Guide: "Docker in Production"
Empfohlene Lektüre:
- So aktualisieren Sie laufende Docker-Container automatisch
- ctop – Ein Befehlszeilen-Überwachungstool für Linux-Container
- Portainer – Eine einfachste Art, Docker zu verwalten
- PiCluster – Eine einfache, webbasierte Docker-Verwaltungsanwendung
- Dockly - Docker-Container vom Terminal aus verwalten