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

So erstellen Sie ein Docker-Image aus einem Container und einer Docker-Datei

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.tar
Leitfaden für Anfänger in die Docker-Welt


Docker
  1. So erstellen, listen und löschen Sie Docker-Container unter Linux

  2. Datei aus Docker-Image extrahieren?

  3. So verwenden Sie ein Dockerfile zum Erstellen eines Docker-Images

  4. So packen und übertragen Sie Docker-Images von einem Server auf einen anderen

  5. So trennen Sie sich von einem Docker-Container, ohne ihn zu stoppen

So erstellen Sie ein Docker-Image aus einem laufenden Container

So erstellen Sie einen Django-Docker-Anwendungscontainer

So erstellen Sie ein Docker-Windows-Image mit Docker-Build-Tag

So stellen Sie einen Docker-MongoDB-Container bereit und verwalten ihn

So verwenden Sie Docker:Bild speichern und zum Teilen exportieren

So erstellen Sie ein benutzerdefiniertes Docker-Image mit Dockerfile