Il post illustra come creare e inviare immagini Docker sul sistema Docker locale al repository hub Docker. Ai fini di questo post, estrarremo un'immagine CentOS dal repository pubblico nell'hub Docker. Successivamente eseguiremo un container utilizzando questa immagine e aggiungeremo un nuovo file al container. Questo nuovo contenitore verrà quindi inviato all'hub Docker come nuova immagine Docker.
Creazione di un'immagine Docker
1. Estrai l'ultima versione dell'immagine CentOS dal Docker Hub.
# 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. Una volta scaricata l'immagine CentOS, eseguiremo il contenitore docker basato su questa immagine con il nome "centos_test".
# docker run -it --name="centos_test" centos:latest /bin/bash [root@e121d03b20dc /]#
3. Ora creiamo una nuova directory nel contenitore "test_dir" con un file come "test_file". Aggiungi anche del testo casuale nel file_test.
[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. Il passaggio successivo consiste nel creare la nuova immagine con il comando docker commit utilizzando il contenitore docker appena creato. Il comando 'docker commit' viene eseguito dall'host della finestra mobile e non dal contenitore della finestra mobile stesso.
# docker commit -m="This a test image" centos_test geeklab/test_repo sha256:8a34a37712626012e995e3b02e2179bd38fb646cfc9ceaa30b15a4774d198f67
Ecco,
-m="Questa è un'immagine di prova" :è un messaggio di commit.
centos_test :nome del contenitore da cui stai creando l'immagine.
geeklab/test_repo :nome del repository Docker Hub in cui desideri inviare l'immagine. Questo è il tag che verrà assegnato alla nuova immagine creata.
5. Dopo aver eseguito il comando precedente, vedrai la nuova immagine "centos_image" nell'elenco delle immagini docker disponibili localmente sul sistema.
# 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
Invio dell'immagine della finestra mobile al repository hub della finestra mobile
1. Il passaggio successivo è accedere al repository dell'hub Docker a cui desideri inviare l'immagine.
# 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. Ora puoi eseguire il push dell'immagine nel repository dell'hub Docker.
# 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. Ora effettueremo l'accesso al Docker Hub e verificheremo l'immagine nei repository.