GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Docker-Tutorial – Erste Schritte mit Docker unter Linux

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 COMPLETT  

Sie können auch eine bestimmte Version des Ubuntu-Images mit folgendem Befehl herunterladen:

$ docker pull ubuntu:18.04

Docker 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 centos

Alle 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-Bilder

Beispielausgabe:

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.84kB

Wie 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 und 7698f282e524 ist die IMAGE-ID von Ubuntu Docker-Image, 9f38484d220f ist die Image-ID des CentOS-Docker-Images und fce289e99eb9 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/bash

Hier,

  • -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-ID
  • ubuntu: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 Speicherplatz 

Dieser 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-Bilder

Beispielausgabe:

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.8k 

Wie 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 ce5aa74a48f1

Beispielausgabe:

 Untagged:ostechnix / ubuntu_apache:latestDeleted:sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:sha256:d21c926f11a64b811dc75391bbe0191b50b8fe142419f7616b3cee70229f14cd 

Fehlerbehebung

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 verwendet

Dies 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 ps

Beispielausgabe:

Hoppla! Es gibt keinen laufenden Container.

Lassen Sie uns erneut nach allen Containern (Running und Stopped) mit dem Befehl:

suchen
$ sudo docker ps -a

Beispielausgabe:

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 12e892156219

Entfernen 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 b72889fa879c

Das ist es. Überprüfen Sie nun mit dem Befehl:

, ob es noch andere Docker-Images auf dem Host gibt
$ sudo Docker-Bilder

Sie 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

Docker
  1. Erste Schritte mit btrfs für Linux

  2. Ratschläge für den Einstieg in GNOME

  3. Erste Schritte mit Linux-Firewalls

  4. Erste Schritte mit PostgreSQL unter Linux

  5. Erste Schritte mit SSH unter Linux

Vagrant-Tutorial – Erste Schritte mit Vagrant unter Linux

Podman-Tutorial – Erste Schritte mit Podman

Erste Schritte mit Docker Compose unter Linux

Erste Schritte mit VirtualBox unter Linux – Teil 1

Erste Schritte mit Flutter auf dem Linux-Desktop

Tutorial „Erste Schritte mit Azure Docker“.