In diesem Beitrag wird erläutert, wie Docker-Images auf einem lokalen Docker-System erstellt und in das Docker-Hub-Repository übertragen werden. Für diesen Beitrag ziehen wir ein CentOS-Image aus dem öffentlichen Repository im Docker-Hub. Später werden wir einen Container mit diesem Image ausführen und dem Container eine neue Datei hinzufügen. Dieser neue Container wird dann als neues Docker-Image an den Docker-Hub gepusht.
Erstellen eines Docker-Images
1. Laden Sie die neueste Version des CentOS-Images vom Docker Hub herunter.
# docker pull centos Using default tag: latest latest: Pulling from library/centos Digest: sha256:4565fe2dd7f4770e825d4bd9c761a81b26e49cc9e3c9631c58cfc3188be9505a Status: Image is up to date for centos:latest
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest d123f4e55e12 2 weeks ago 197MB
2. Sobald das CentOS-Image heruntergeladen wurde, führen wir den Docker-Container basierend auf diesem Image mit dem Namen „centos_test“ aus.
# docker run -it --name="centos_test" centos:latest /bin/bash [root@e121d03b20dc /]#
3. Jetzt erstellen wir ein neues Verzeichnis im Container „test_dir“ mit einer Datei darin als „test_file“. Fügen Sie auch zufälligen Text in der test_file hinzu.
[root@e121d03b20dc /]# mkdir test_dir [root@e121d03b20dc /]# cd test_dir [root@e121d03b20dc test_dir]# echo "This is a sample text" > test_file [root@e121d03b20dc test_dir]# cat test_file This is a sample text [root@e121d03b20dc test_dir]# ls -lrt total 4 -rw-r--r--. 1 root root 22 Nov 19 16:12 test_file
4. Der nächste Schritt besteht darin, das neue Image mit dem Docker-Commit-Befehl unter Verwendung des neu erstellten Docker-Containers zu erstellen. Der Befehl „docker commit“ wird vom Docker-Host und nicht vom Docker-Container selbst ausgeführt.
# docker commit -m="This a test image" centos_test geeklab/test_repo sha256:8a34a37712626012e995e3b02e2179bd38fb646cfc9ceaa30b15a4774d198f67
Hier
-m="Dies ist ein Testbild" :ist eine Commit-Nachricht.
centos_test :Name des Containers, aus dem Sie das Image erstellen.
geeklab/test_repo :Name des Docker Hub-Repositorys, in das Sie das Image verschieben möchten. Dies ist das Tag, das dem neu erstellten Bild zugewiesen wird.
5. Nachdem der obige Befehl ausgeführt wurde, sehen Sie das neue Image „centos_image“ in der Liste der Docker-Images, die lokal auf dem System verfügbar sind.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE geeklab/test_repo latest 8a34a3771262 About a minute ago 197MB centos latest d123f4e55e12 2 weeks ago 197MB
Das Docker-Image in das Docker-Hub-Repository übertragen
1. Der nächste Schritt ist die Anmeldung beim Docker-Hub-Repository, in das Sie das Image verschieben möchten.
# docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: geeklab Password: Login Succeeded
2. Jetzt können Sie das Image in das Docker-Hub-Repository verschieben.
# docker push geeklab/test_repo The push refers to a repository [docker.io/geeklab/test_repo] 3dbbbdcf3ef9: Pushed cf516324493c: Pushed latest: digest: sha256:c542e22fe3f29f809226d72b6c6d8efd0bec46c2924d66ad8fbb5612972740fe size: 736
3. Jetzt melden wir uns beim Docker Hub an und überprüfen das Image in Repositories.