Docker ist ein offenes Plattformverwaltungstool für Linux-Container. Es bietet Entwicklern und Systemadministratoren die Möglichkeit, Anwendungen zu erstellen und in leichtgewichtigen Containern zu verpacken. Docker besteht aus den folgenden Komponenten:
- Docker-Engine – Ein tragbares, leichtes Laufzeit- und Paketierungstool
- Docker-Hub – Ein Cloud-Dienst zum Teilen von Anwendungen und Automatisieren von Arbeitsabläufen
Docker wird verwendet, um Image-basierte Anwendungscontainer zu erstellen. Image-basierte Container packen eine Anwendung mit dem individuellen Runtime-Stack in einen einzigen Container. Dadurch wird der Container unabhängig vom Host-Betriebssystem und der Kernel-Version. Infolgedessen können Sie dieselbe Anwendung unverändert auf Laptops, virtuellen Maschinen im Rechenzentrum und jeder Cloud ausführen. Sie können diesen Container auf einen anderen Computer übertragen, auf dem Docker ausgeführt wird, und die Anwendung ohne Kompatibilitätsprobleme ausführen.
Erstellen eines Images aus einem Container
Mit dem „docker commit“ können Sie den aktuellen Zustand eines Containers als neues Image speichern " Befehl. Dies ist nützlich, wenn Sie einen Container geändert haben und die Änderungen zur späteren Verwendung in ein neues Image übernehmen möchten.
Das Beispiel auf der Folie erstellt einen neuen Container namens „geeklab“ aus dem Centos:7-Image und führt den Bash-Shell-Befehl im Container aus.
# docker run -i -t --name geeklab centos:7 /bin/bash [root@873abc18f59d /]#
Innerhalb des Containers wird der Befehl yum verwendet, um das httpd-Paket zu installieren.
[root@873abc18f59d /]# yum install httpd
Verwenden Sie den Exit-Befehl, um einen laufenden Container zu stoppen.
[root@873abc18f59d /]# exit exit
Der Befehl „docker commit“ speichert die Änderungen in einem neuen Image. Verwenden Sie die Option -m, um eine Nachricht bereitzustellen, die die Änderungen beschreibt. Verwenden Sie das -a Option zum Bereitstellen von Autoreninformationen. Geben Sie die Container-ID oder den Containernamen, den Image-Namen und ein Tag an. Beispiel:
# docker commit -m="CentOS 7 With httpd installed" -a "Geek Lab" geeklab centos7/httpd:v1 sha256:b3c42dd36e247cabcfaf134afb4765e9853ebfbe856c8d785f65cfafc9fd53cd
Die Ausgabe des Befehls docker images enthält jetzt das neue Bild.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos7/httpd v1 b3c42dd36e24 20 seconds ago 334 MB
Erstellen eines Images aus einer Dockerdatei
Verwenden Sie den docker build-Befehl, um ein neues Image anhand der Anweisungen zu erstellen, die in einer Datei mit dem Namen „Dockerfile“ enthalten sind “. Das Format des Dockerfiles ist:
# Comment INSTRUCTION arguments
Bei der Anweisung wird nicht zwischen Groß- und Kleinschreibung unterschieden, aber die Konvention besteht darin, die Anweisung groß zu schreiben, um sie von den Argumenten zu unterscheiden. Docker führt die Anweisungen in einer Dockerfile der Reihe nach aus. Sie erstellen ein neues Image aus einem Basisimage. Die erste Anweisung ist FROM und gibt das zu verwendende Basisbild an. Beispiel:
FROM centos:7
Verwenden Sie die RUN-Anweisung, um die Befehle anzugeben, die in einer neuen Ebene über dem aktuellen Bild ausgeführt werden sollen, und übertragen Sie die Ergebnisse. Beispiel:
RUN yum –y install httpd
Die ENTRYPOINT-Anweisung gibt den Befehl an, den der aus dem Image erstellte Container ausführt. Beispiel:
ENTRYPOINT /usr/sbin/httpd –D FOREGROUND
Eine Beschreibung aller Anweisungen finden Sie auf der Dockerfile-Manpage. Die folgende URL bietet auch Beschreibungen, Verwendung und Beispiele aller verfügbaren Dockerfile-Anweisungen:https://docs.docker.com/reference/builder/.
Speichern und laden Sie ein Bild oder einen Container
Sie können Tar-Dateien von Images und Containern erstellen, die auf Systemen verwendet werden, die keinen Zugriff auf Docker Hub haben. Verwenden Sie die „Docker-Speicherung“. “-Befehl zum Speichern von Bildern in einer TAR-Datei. Sie können entweder alle Bilder in einem Repository in einer tar-Datei speichern oder ein bestimmtes Bild in einer tar-Datei speichern. Erstellen Sie die tar-Datei entweder durch Umleiten von STDOUT zu einer tar-Datei oder verwenden Sie die Option -o, um einen Ausgabe-tar-Dateinamen anzugeben.
Das folgende Beispiel leitet STDOUT um, um alle Bilder im centos-Repository in centos-all.tar zu speichern:
# docker save centos > centos-all.tar
Das folgende Beispiel speichert das Bild centos:latest in der Datei centos-lates.tar.
# docker save -o=centos-latest.tar centos:latest
Verwenden Sie den Befehl docker load, um ein Image aus einer tar-Datei in ein lokales Docker-Repository zu laden. Das folgende Beispiel lädt die Bilder aus der Datei centos-all.tar:
# docker load --input centos-all.tarLeitfaden für Anfänger in die Docker-Welt