Le message explique comment créer et transférer des images Docker sur le système Docker local vers le référentiel Docker Hub. Pour les besoins de cet article, nous allons extraire une image CentOS du référentiel public dans le hub Docker. Plus tard, nous exécuterons un conteneur en utilisant cette image et ajouterons un nouveau fichier au conteneur. Ce nouveau conteneur sera ensuite poussé vers le hub Docker en tant que nouvelle image Docker.
Construire une image Docker
1. Extrayez la dernière version de l'image CentOS du 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. Une fois l'image CentOS téléchargée, nous exécuterons le conteneur docker basé sur cette image avec le nom "centos_test".
# docker run -it --name="centos_test" centos:latest /bin/bash [root@e121d03b20dc /]#
3. Maintenant, créons un nouveau répertoire dans le conteneur "test_dir" avec un fichier en tant que "test_file". Ajoutez également du texte aléatoire dans le test_file.
[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. L'étape suivante consiste à créer la nouvelle image avec la commande docker commit à l'aide du conteneur docker nouvellement créé. La commande 'docker commit' est exécutée à partir de l'hôte docker et non à partir du conteneur docker lui-même.
# docker commit -m="This a test image" centos_test geeklab/test_repo sha256:8a34a37712626012e995e3b02e2179bd38fb646cfc9ceaa30b15a4774d198f67
Ici,
-m=”Ceci est une image de test” :est un message de validation.
centos_test :Nom du conteneur à partir duquel vous créez l'image.
geeklab/test_repo :nom du référentiel Docker Hub où vous souhaitez envoyer l'image. C'est le tag qui sera attribué à la nouvelle image créée.
5. Une fois la commande ci-dessus exécutée, vous verrez la nouvelle image "centos_image" dans la liste des images Docker disponibles localement sur le système.
# 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
Pousser l'image Docker vers le référentiel Docker Hub
1. L'étape suivante consiste à vous connecter au référentiel Docker Hub dans lequel vous souhaitez transférer l'image.
# 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. Vous pouvez maintenant transférer l'image vers le référentiel Docker Hub.
# 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. Nous allons maintenant nous connecter au Docker Hub et vérifier l'image dans les référentiels.