So generieren Sie ein Docker-Image aus einem Container

So Generieren Sie Ein Docker Image Aus Einem Container



Docker-Images sind eine der Schlüsselkomponenten der Docker-Plattform und spielen eine wesentliche Rolle beim Erstellen, Bereitstellen und Versenden von Docker-Anwendungen innerhalb des Containers. Docker-Images sind Vorlagen oder Snapshots von Containern, die dem Container Anweisungen zum Containerisieren und Bereitstellen der Anwendung geben. Tausende offizielle Images stehen in der Docker Hub-Registrierung zur Containerisierung der Anwendung zur Verfügung. Benutzer können diese Images jedoch auch mithilfe des Dockerfile- und Docker-Compose-Dienstes entsprechend ihren Anforderungen erstellen.

Manchmal nehmen Benutzer Änderungen an Container- und Konfigurationseinstellungen vor, diese Änderungen werden jedoch nicht im Docker-Image übernommen. Um die Containeränderungen am Image zu speichern oder das Container-Backup zu erstellen, müssen Benutzer ein neues Image aus dem Container erstellen. Zu diesem Zweck ist die „ Docker-Commit ”-Befehl kann verwendet werden.

Dieser Leitfaden zeigt:







Was ist der Befehl „docker commit“?

Der ' Docker-Commit „Befehl ist eines der Befehlszeilen-Dienstprogramme von Docker, das verwendet wird, um die Containeränderungen und -einstellungen in das Docker-Image zu übertragen. Es wird auch zum Erstellen des Container-Backups verwendet, wenn Benutzer den Docker entrümpeln müssen, indem sie die Docker-Container entfernen. Der Docker-Commit-Befehl bezieht jedoch nur die Containerdatei und Konfigurationsänderungen in das Docker-Image ein, er speichert niemals die Daten des Volumes, das mit dem Container gemountet ist.



Syntax



Docker-Commit < OPTIONEN > < Containername / Container-ID > < Bildname >

Optionen





Die folgenden Optionen werden mit dem „ Docker-Commit ”-Befehl zum Erstellen eines Bildes aus einem Container auf verschiedene Arten:

< stark > Möglichkeit stark > td >
< td >< stark > Beschreibung stark > td >
tr >
< tr >
< td >< stark > -A, --Autor stark > td >
< td > Es wird verwendet, um den Namen des Autors anzugeben, der die Änderungen des Containers festschreibt In das Bild. td >
tr >
< tr >
< td >< stark > -C, --ändern stark > td >
< td > Fügen Sie die Dockerfile-Anweisungen hinzu, um die Änderungen zu übernehmen In ein Bild. td >
tr >
< tr >
< td >< stark > -m, --message stark > td >
< td > Fügen Sie die Commit-Nachricht oder den Kommentar hinzu während Generieren eines Bildes aus dem Container. td >
tr >
< tr >
< td >< stark > -p, --pause stark > td >
< td > Beim Festschreiben des Containers wird der Container standardmäßig gestoppt oder angehalten. Um zu verhindern, dass der Container pausiert, wird „ < stark > --pause= FALSCH stark > ”-Option wird verwendet.

Wie erstelle ich ein Image aus einem Docker-Container?

Wenn der Benutzer Änderungen am Docker-Container direkt über die Container-Shell oder nicht interaktiv vornimmt, ändern diese Änderungen nicht den Container-Snapshot. Um Änderungen zu speichern oder zu übernehmen, kann der Benutzer mit dem Befehl „ Docker-Commit ' Befehl. Dies ist auch hilfreich für die Erstellung des Backups des Containers.



Um ein Image über den Docker-Container zu erstellen, gehen Sie die folgende Abbildung durch.

Schritt 1: Dockerfile erstellen

Erstellen Sie zunächst eine neue Datei mit dem Namen „ Docker-Datei ” und fügen Sie dem Dateinamen keine Dateierweiterung hinzu. Fügen Sie anschließend die folgenden Befehle in die „Dockerfile“ ein.

VON nginx:latest

KOPIEREN Sie index.html / usr / Aktie / Nginx / html / index.html

EINSTIEGSPUNKT [ „nginx“ , '-G' , „Daemon aus;“ ]

Hier das ' AUS Der Befehl „ wird verwendet, um das Container-Basisbild zu definieren. KOPIEREN Der Befehl „kopiert die Programmdatei in den vom Container angegebenen Pfad und der Befehl „ EINSTIEGSPUNKT Der Befehl legt die standardmäßigen ausführbaren Dateien des Containers fest.

Schritt 2: Programmdatei erstellen

Als nächstes erstellen Sie eine weitere Datei „ index.html ” und fügen Sie der Datei den folgenden HTML-Code hinzu:

< html >

< Kopf >

< Stil >

Körper {

Hintergrundfarbe:rgb ( 9 , 4 , 4 ) ;

}

h1 {

Farbe: RGB ( 221 , 219 , 226 ) ;

Schriftstil: kursiv;

}

Stil >

Kopf >

< Körper >

< h1 > Dies ist die erste HTML-Seite h1 >

Körper >

html >

Schritt 3: Erstellen Sie den Snapshot des Containers

Generieren Sie nun mit dem folgenden Befehl den Snapshot des Containers aus der Docker-Datei. Hier das ' -T Die Option „wird verwendet, um den Namen des Snapshots festzulegen:

Docker-Build -T Demo-Bild .

Schritt 4: Führen Sie Snapshot aus, um den Container zu starten

Als nächstes starten Sie den Container, indem Sie das Container-Image ausführen. Nutzen Sie dazu die „ Docker führt aus ' Befehl:

Docker-Lauf -P 80 : 80 --Name Demo-Forts -D Demo-Bild

Im obigen Befehl ist das „ -P „Option legt den Offenlegungsport des Containers fest, „ -Name ” gibt den Containernamen und das „ an -D Die Option „Führt den Container im getrennten Modus aus:

Navigieren Sie nach der Ausführung des Containers zu „ http://localhost:80 ” URL und prüfen Sie, ob das Containerprogramm über den exponierten Port zugänglich ist oder nicht:

Die obige Ausgabe zeigt, dass wir den Container erfolgreich gestartet haben.

Schritt 5: Erstellen Sie eine neue Programmdatei

Manchmal müssen Benutzer der laufenden Anwendung zusätzliche Funktionen hinzufügen. Zu diesem Zweck muss der Benutzer möglicherweise Änderungen in der Programmdatei vornehmen oder der Anwendung zusätzliche Dateien hinzufügen.

Zu diesem Zweck erstellen wir eine weitere Datei mit dem Namen „ index1.html ” und fügen Sie den folgenden Code in die Datei ein:

< html >

< Kopf >

< Stil >

Körper {

Hintergrundfarbe:rgb ( 106 , 103 , 103 ) ;

}

h1 {

Farbe: RGB ( 221 , 219 , 226 ) ;

Schriftstil: kursiv;

}

Stil >

Kopf >

< Körper >

< h1 > Dies ist die zweite HTML-Seite h1 >

Körper >

html >

Schritt 6: Neue Programmdatei in den Container kopieren

Um die neue Datei in den Containerpfad zu kopieren, verwenden Sie den Befehl „ docker cp : ' Befehl. Hier haben wir das „ index1.html ”-Datei in die „ Demo-Forts „Angegebener Pfad des Containers:

Docker vgl index1.html Demo-Cont: / usr / Aktie / Nginx / html / index1.html

Schritt 7: Übernehmen Sie die Containeränderungen in ein neues Image

Nachdem Benutzer Änderungen an einem Container vorgenommen haben, müssen sie die Änderungen in ein neues Docker-Image übertragen. Dieses Image wird über einen Docker-Container generiert. Führen Sie dazu den Befehl „ Docker Commit ' Befehl:

Docker Commit Demo-Cont New-Demo-IMG

Notiz: Änderungen am Docker-Container vornehmen, bevor das Bild generiert wird durch „ Docker-Commit „Befehl ist nicht obligatorisch. Benutzer können den „Docker-Commit“ direkt verwenden, um das Backup des Containers zu generieren, indem sie das Image erstellen.

Schritt 8: Bestätigung

Um zu überprüfen, ob das Image über den Container erstellt wurde oder nicht, listen Sie Docker-Images auf, indem Sie „ Docker-Bilder ' Befehl:

Docker-Bilder

Die folgende Ausgabe zeigt, dass wir das „ neues-demo-img ' aus ' Demo-Forts ”Behälter:

Notiz: Um das Docker-Image in die Docker-Hub-Registrierung zu übertragen, kann der Benutzer das Image auch mit dem Tag „ Docker-Tag ' Befehl:

Docker-Tag < Bildname > < Repository-Name >>< Bildname > : < Etikett / Ausführung >

Schritt 9: Alten Behälter entfernen

Entfernen Sie nun den älteren Behälter. Stoppen Sie dazu zunächst den Docker-Container mit dem Befehl „ Docker Stop ' Befehl:

Docker Stop Demo-Forts

Verwenden Sie nach dem Anhalten des Behälters die „ docker rm ”-Befehl, um es aus Docker zu entfernen:

Docker rm Demo-Forts

Schritt 10: Neuen Container aus neuem Committed-Image ausführen

Starten Sie nun die neue Instanz oder den Docker-Container mit dem neu generierten Image über „ Docker-Lauf ' Befehl:

Docker-Lauf -P 80 : 80 --Name Demo-Forts -D neues-demo-img

Navigieren Sie nun zu „ localhost:80 ” portieren und prüfen, ob die HTML-Anwendung effektiv läuft oder nicht:

Um die neu kopierte Datei zu überprüfen, die „ index1.html “, nutzen Sie die „ http://localhost/index1.html ” URL:

Die obige Ausgabe zeigt, dass die festgeschriebenen Änderungen erfolgreich im „ neues-demo-img „Docker-Image und wir haben den geänderten Container effektiv ausgeführt.

Wie lege ich den Autor eines Bildes fest?

Der ' Docker-Commit Der Befehl unterstützt auch verschiedene Optionen zum Hinzufügen zusätzlicher Informationen zusammen mit festgeschriebenen Änderungen, wie z. B. dem Autor der neuen Änderungen, einer Festschreibungsnachricht usw.

Um den Autor des Bildes anzugeben, das die neuen Änderungen festschreibt, führen Sie die angegebenen Schritte aus.

Schritt 1: Legen Sie den Autor des Bildes fest

Um den Autor des Bildes anzugeben, der die Änderungen vornimmt, verwenden Sie das „ -A ' oder ' -Autor ”-Option zusammen mit „ Docker-Commit ' Befehl:

Docker-Commit -A Rafia Demo-Fortsetzung Neues Demo-Bild

Schritt 2: Überprüfen Sie das Bild

Um zu überprüfen, ob der Autor des Bildes festgelegt ist oder nicht, überprüfen Sie das neu generierte Bild mit dem Befehl „ Docker inspect ' Befehl:

Docker inspizieren neues-demo-img

Die Ausgabe zeigt, dass wir den Autor des Bildes effektiv festgelegt haben:

Wie lege ich eine Commit-Nachricht für ein Bild fest?

Um die Commit-Nachricht zusammen mit Commit-Änderungen festzulegen, verwenden Sie die Option „ -M ' Möglichkeit. Befolgen Sie zur Veranschaulichung die folgenden Anweisungen.

Schritt 1: Festlegen der Commit-Nachricht des Bildes

Um die Nachricht zusammen mit übernommenen Änderungen festzulegen, verwenden Sie die Option „ docker commit -m <„message“> ' Befehl:

Docker-Commit -A Bast -M „Dieses Bild wird vom Container generiert“ Demo-Cont neues-Demo-Bild

Schritt 2: Überprüfen Sie das Bild

Um die Commit-Nachricht zu überprüfen, überprüfen Sie das Bild mithilfe des „ Docker inspect ' Befehl:

Docker inspizieren neues-demo-img

Unter dem ' Kommentar ”-Taste kann der Benutzer die Commit-Nachricht wie unten gezeigt sehen:

Dabei geht es darum, ein Docker-Image aus einem Container zu generieren.

Abschluss

Um ein Docker-Image aus einem Container zu generieren, nehmen Sie zunächst die Änderungen im Docker-Container vor. Nutzen Sie danach die Funktion „ Docker Commit ”-Befehl, um das Bild aus dem Container zu generieren. Entfernen Sie nun den älteren Container und starten Sie die neue Instanz über das neu generierte Image. Benutzer können auch den Autorennamen des Bildes festlegen, indem sie „ -A ”-Option und schreiben Sie die Nachricht mit der Option „ -M ' Möglichkeit. In diesem Blog wurde veranschaulicht, wie Bilder aus einem Docker-Container generiert werden.