Einen Container in ein neues Image committen
In diesem Schritt erfahren Sie, wie Sie die Änderungen, die Sie in einem laufenden Container vorgenommen haben, in ein neues Docker-Image committen (festschreiben) können. Dies ist nützlich, wenn Sie den Zustand eines Containers nach Modifikationen wie der Installation von Software oder der Konfiguration von Dateien sichern möchten.
Zunächst starten wir einen einfachen Ubuntu-Container. Wir verwenden das ubuntu
-Image. Da wir Änderungen innerhalb des Containers vornehmen werden, müssen wir ihn interaktiv mit einer pseudo-TTY starten.
docker run -it ubuntu
Sie sollten nun in der Shell des Ubuntu-Containers sein. Machen wir eine einfache Änderung, wie die Installation des curl
-Pakets.
apt-get update
apt-get install -y curl
Nachdem die Installation abgeschlossen ist, verlassen Sie die Shell des Containers, indem Sie exit
eingeben.
exit
Nachdem Sie den Container verlassen haben, sind die von Ihnen vorgenommenen Änderungen (die Installation von curl
) immer noch in dieser bestimmten Container-Instanz vorhanden. Um diese Änderungen als neues Image zu sichern, müssen Sie den Container committen.
Zunächst finden Sie die Container-ID des Containers, den Sie gerade verlassen haben. Sie können den Befehl docker ps -a
verwenden, um alle Container aufzulisten, einschließlich derjenigen, die beendet wurden.
docker ps -a
Suchen Sie nach dem Container, der aus dem ubuntu
-Image erstellt wurde, und notieren Sie seine CONTAINER ID
.
Verwenden Sie nun den Befehl docker commit
, um aus diesem Container ein neues Image zu erstellen. Die grundlegende Syntax lautet docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
. Wir werden den Container committen und dem neuen Image einen Namen und ein Tag geben. Ersetzen Sie <CONTAINER_ID>
durch die tatsächliche ID, die Sie gefunden haben.
docker commit < CONTAINER_ID > my-ubuntu-with-curl:v1
Dieser Befehl erstellt ein neues Image namens my-ubuntu-with-curl
mit dem Tag v1
. Sie können überprüfen, ob das neue Image erstellt wurde, indem Sie Ihre lokalen Images auflisten.
docker images
Sie sollten my-ubuntu-with-curl
in der Liste der Images sehen. Dieses neue Image enthält nun das curl
-Paket, das Sie im Container installiert haben.