Ceci est une ancienne révision du document !
Table des matières
Version : 2020.01
Dernière mise-à-jour : 2020/10/08 08:28
DOF201 - Stocker les Images Docker
Contenu du Module
- DOF201 - Stocker les Images Docker
- Contenu du Module
- LAB #1 - Installer un Registre Privé
- 1.1 - Installer docker
- 1.2 - Préparation
- 1.3 - Créer un Registre local,
- 1.4 - Créer un Serveur de Registre Dédié
- Configurer le clone comme Registre Dédié
- Configurer le Client
LAB #1 - Installer un Registre Privé
1.1 - Installer docker
Docker n'est pas dans le dépôts de Debian. Afin de l'installer il convient d'ajouter le dépôt de docker. Premièrement, il est nécessaire d'installer les paquets permettant à Debian d'utiliser un dépôt en https :
root@debian9:~# apt-get update ... root@debian9:~# apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common Reading package lists... Done Building dependency tree Reading state information... Done ca-certificates is already the newest version. ca-certificates set to manually installed. gnupg2 is already the newest version. gnupg2 set to manually installed. The following extra packages will be installed: libcurl3 python3-dbus python3-software-properties unattended-upgrades Suggested packages: python-dbus-doc python3-dbus-dbg The following NEW packages will be installed: apt-transport-https curl libcurl3 python3-dbus python3-software-properties software-properties-common unattended-upgrades 0 upgraded, 7 newly installed, 0 to remove and 1 not upgraded. Need to get 960 kB of archives. After this operation, 2,344 kB of additional disk space will be used. Do you want to continue? [Y/n]
Téléchargez la clef GPG officielle de docker :
root@debian9:~# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - OK
Vérifiez que l'ID de la clef est 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 :
root@debian9:~# apt-key fingerprint 0EBFCD88 /etc/apt/trusted.gpg -------------------- pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb) <docker@docker.com> sub 4096R/F273FCD8 2017-02-22 ...
Ajoutez le dépôt stable de docker :
root@debian9:~# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Important - Notez que la commande lsb_release -cs retourne le nom de la distribution Debian, à savoir dans ce cas stretch.
Installez maintenant le paquet docker-ce :
root@debian9:~# apt-get update ... root@debian9:~# apt-get install docker-ce Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: aufs-tools cgroupfs-mount git git-man libapparmor1 liberror-perl libnih-dbus1 libnih1 makedev mountall plymouth rsync Suggested packages: git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn plymouth-themes The following NEW packages will be installed: aufs-tools cgroupfs-mount docker-ce git git-man libapparmor1 liberror-perl libnih-dbus1 libnih1 makedev mountall plymouth rsync 0 upgraded, 13 newly installed, 0 to remove and 99 not upgraded. Need to get 26.5 MB of archives. After this operation, 123 MB of additional disk space will be used. Do you want to continue? [Y/n]
Dernièrement, vérifiez la version de Docker client et serveur :
root@debian9:~# docker version Client: Docker Engine - Community Version: 19.03.4 API version: 1.40 Go version: go1.12.10 Git commit: 9013bf583a Built: Fri Oct 18 15:52:34 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.4 API version: 1.40 (minimum version 1.12) Go version: go1.12.10 Git commit: 9013bf583a Built: Fri Oct 18 15:51:05 2019 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.10 GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339 runc: Version: 1.0.0-rc8+dev GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 docker-init: Version: 0.18.0 GitCommit: fec3683
Important - Docker est composé de trois éléments : un serveur, un client et un ou plusieurs Repositories ou Dépôts. Nous reviendrons sur les dépôts dans le détail plus tard dans ce cours.
Re-démarrez la machine virtuelle avant de poursuivre :
root@debian9:~# shutdown -r now
1.2 - Préparation
Connectez-vous à la VM Debian_9 :
desktop@serverXX:~$ ssh -l trainee localhost -p 2022
Passez en tant que root :
trainee@debian9:~$ su - Mot de passe : fenestros root@debian9:~#
Créez un répertoire nommé myDocker :
root@debian9:~# mkdir ~/myDocker root@debian9:~# cd ~/myDocker root@debian9:~/myDocker#
Créez le fichier myEntrypoint.sh :
root@debian9:~/myDocker# vi myEntrypoint.sh root@debian9:~/myDocker# cat myEntrypoint.sh #!/bin/bash if [ -z "$myVariable" ]; then echo "La variable myVariable doit être renseignée" return 1 fi while true; do echo $1 \($(date +%H:%M:%S)\); sleep "$myVariable"; done
Testez ce script :
root@debian9:~/myDocker# myVariable=3 . ./myEntrypoint.sh salut salut (20:04:39) salut (20:04:42) salut (20:04:45) salut (20:04:48) salut (20:04:51) ^C root@debian9:~/myDocker#
Rendez ce script exécutable :
root@debian9:~/myDocker# chmod u+x myEntrypoint.sh
Créez maintenant le fichier Dockerfile dans le répertoire ~/myDocker :
root@debian9:~/myDocker# vi Dockerfile root@debian9:~/myDocker# cat Dockerfile FROM centos:latest MAINTAINER i2tch "infos@i2tch.eu" COPY myEntrypoint.sh /entrypoint.sh ENV myVariable 3 ENTRYPOINT ["/entrypoint.sh"] CMD ["mycommand"]
Générez maintenant l'image :
root@debian9:~/myDocker# docker build -t i2tch/mydocker . Sending build context to Docker daemon 3.072kB Step 1/6 : FROM centos:latest ---> 9f38484d220f Step 2/6 : MAINTAINER i2tch "infos@i2tch.eu" ---> Running in 02c700ed04da Removing intermediate container 02c700ed04da ---> 4274107d52e2 Step 3/6 : COPY myEntrypoint.sh /entrypoint.sh ---> 7a3923372768 Step 4/6 : ENV myVariable 3 ---> Running in 3288bf6291ad Removing intermediate container 3288bf6291ad ---> 3edb630c1511 Step 5/6 : ENTRYPOINT ["/entrypoint.sh"] ---> Running in 8dcba2c41520 Removing intermediate container 8dcba2c41520 ---> 11962052539c Step 6/6 : CMD ["mycommand"] ---> Running in f891fbcfaad0 Removing intermediate container f891fbcfaad0 ---> 7925ba23abb2 Successfully built 7925ba23abb2 Successfully tagged i2tch/mydocker:latest
1.3 - Installer un Registre Local
Pour installer un registre privé, il convient d'utiliser une image publique de docker :
root@debian9:~/bestp# cd .. root@debian9:~# docker run -d --name registry -p 88:5000 registry:2.0 Unable to find image 'registry:2.0' locally 2.0: Pulling from library/registry 4d2e9ae40c41: Pull complete a3ed95caeb02: Pull complete 7c8152785df5: Pull complete 8b04aafd7cd8: Pull complete c97c75d2d42e: Pull complete 4b3ef98bba76: Pull complete edee0288d356: Pull complete ea2a9399d365: Pull complete ddf532273b60: Pull complete e9e91aa1843e: Pull complete 6144b0ffbb4c: Pull complete Digest: sha256:3cac1869696e4ff3435bbc30391749ac373f7471736dbb48dfa9bfde08c4efd2 Status: Downloaded newer image for registry:2.0 c4c7cad999cdd77df78a21897bd11c4742a094c1c76a2134fbe4a4d2d92bff0e
Utilisez maintenant lynx à partir d'un terminal de votre machine hôte pour vérifier que le registre est actif :
root@debian9:~# lynx --dump http://localhost:88/v2 {}root@debian9:~#
Important - Notez la réponse du serveur est {} soit une liste JSON vide.
Renommez l'image i2tch/mydocker afin de pointer vers le nouveau registre :
root@debian9:~# docker tag i2tch/mydocker localhost:88/mydocker
Important - Notez que le tag i2tch/mydocker cache le nom du registre par défaut qui est le registre public de Docker Hub.
Envoyez votre image localhost:88/mydocker sur ce nouveau registre :
root@debian9:~# docker push localhost:88/mydocker The push refers to a repository [localhost:88/mydocker] 873a8ac77d4d: Pushed b362758f4793: Pushed latest: digest: sha256:30866da81d92d2a1015b869c596ddd6e188f33894c41d8effa2161e5c2862b1f size: 5531
Constatez maintenant la présence de l'image dans le registre :
root@debian9:~# lynx --dump http://localhost:88/v2/mydocker/tags/list {"name":"mydocker","tags":["latest"]}
root@debian9:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE testcache latest c3b03bddaaad 18 minutes ago 120MB <none> <none> 1df8c3603628 23 minutes ago 120MB i2tch/mydocker latest c37edbd43993 45 minutes ago 193MB localhost:88/mydocker latest c37edbd43993 45 minutes ago 193MB i2tch/mongodb2 latest 65e81f78c0f5 12 hours ago 240MB i2tch/mongodb1 latest 2de862819e94 12 hours ago 240MB i2tch/mongodb latest 01c4aa152be2 12 hours ago 1.04GB ubuntu latest ccc7a11d65b1 3 weeks ago 120MB centos latest 328edcd84f1b 4 weeks ago 193MB nginx latest b8efb18f159b 6 weeks ago 107MB debian wheezy-slim 884ca0b949e5 6 weeks ago 46.9MB hello-world latest 1815c82652c0 2 months ago 1.84kB registry 2.0 3bccd459597f 2 years ago 549MB
1.4 - Créer un Serveur de Registre Dédié
Actuellement, le registre privé créé ci-dessus n'est pas accessible à partir du réseau local car il est référencé par localhost. Il convient donc maintenant de mettre en place un serveur dédié.
Créez le réseau Nat NatNetwork :
desktop@serverXX:~$ VBoxManage natnetwork add --netname NatNetwork --network "10.0.2.0/24" --enable desktop@serverXX:~$ VBoxManage natnetwork modify --netname NatNetwork --dhcp on desktop@serverXX:~$ VBoxManage natnetwork start --netname NatNetwork
Vérifiez que votre machine virtuelle Debian_9 est allumée :
desktop@serverXX:~$ VBoxManage list runningvms "Debian_9" {0ab64831-56fb-4f1b-95cc-d6e107451742}
Placez Debian_9 dans le réseau NAT NatNetwork :
desktop@serverXX:~$ VBoxManage controlvm Debian_9 nic1 natnetwork NatNetwork
Arrêtez la VM Debian_9 :
desktop@serverXX:~$ VBoxManage controlvm Debian_9 poweroff 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Créez un clone de la VM Debian_9 appelé Registry :
desktop@serverXX:~$ VBoxManage clonevm Debian_9 --name="Registry" --register --mode=all 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Machine has been successfully cloned as "Registry"
Vérifiez la présence de votre clône :
desktop@serverXX:~$ VBoxManage list vms "Ansible" {73241c69-0827-431c-a25b-756ac6ac722c} "CentOS_7" {2a6e6280-9c56-40eb-b04a-a96f397c82de} "Debian_9" {0ab64831-56fb-4f1b-95cc-d6e107451742} "Manager" {f1b9be7c-5cdf-459a-a47a-21cfac927966} "TargetA" {66583f4a-fa27-4db5-b12f-05f36902b1ab} "TargetB" {4819e950-8477-42b5-912d-6fe67cb88b9c} "Web01" {f14ef311-8b34-4850-99a4-12d3ef24e63b} "Web02" {62522626-8415-4810-a7c6-6c8fdb5dfef8} "Web03" {16d9bf94-bfa0-46ea-9c5b-5dece023b073} "Web04" {986e91a0-50e8-4170-8055-ba8ca5f0dcb3} "Windows10" {c3c63823-af86-4cf3-9fb7-1e215e7b662a} "Worker1" {a924df56-20d4-4638-a4d9-67a1a019591c} "Worker2" {25fae873-dbba-4332-961f-24077cee5310} "Debian_9_1" {38603f72-6cae-4186-a5ed-648e900cf398} "Registry" {aac92847-6833-494a-8ca6-0c403a7a249a}
Démarrez la machine virtuelle Registry :
desktop@serverXX:~$ VBoxManage startvm Registry --type headless
Configurez votre clone en réseau NAT :
desktop@serverXX:~$ VBoxManage controlvm Registry nic1 nat
Connectez-vous à votre clone :
desktop@serverXX:~$ ssh -l trainee localhost -p 2022 trainee@localhost's password: trainee
En tant que root, modifiez le nom d'hôte de la machine !
trainee@debian9:~$ su - Mot de passe : fenestros root@debian9:~# nmcli general hostname registry root@debian9:~# hostname registry
Configurez une adresse IP fixe pour la VM Registry :
root@debian9:~# nmcli connection add con-name ip_fixe ifname enp0s3 type ethernet ip4 10.0.2.4/24 gw4 10.0.2.2 Connexion « ip_fixe » (a84f9227-dd89-4e06-957f-cb707e83fd47) ajoutée avec succès. root@debian9:~# nmcli connection mod ip_fixe ipv4.dns 8.8.8.8 root@debian9:~# nmcli connection up ip_fixe
Fermez le terminal et reconnectez-vous à votre serveur. Vérifiez que seule la VM Registry soit allumée :
desktop@serverXX:~$ VBoxManage list runningvms "Registry" {aac92847-6833-494a-8ca6-0c403a7a249a}
Connectez-vous à la VM Registry :
desktop@serverXX:~$ ssh -l trainee localhost -p 2022 trainee@localhost's password: trainee
Vérifiez la prise en compte de la modification de l'adresse IP :
trainee@registry:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:3b:0a:87 brd ff:ff:ff:ff:ff:ff inet 10.0.2.4/24 brd 10.0.2.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::eaaa:3c18:9e20:768b/64 scope link valid_lft forever preferred_lft forever
Sortez de la VM Registry :
trainee@registry:~$ exit déconnexion Connection to localhost closed.
Remettez la VM Registry dans le réseau NAT NatNetwork :
desktop@serverXX:~$ VBoxManage controlvm Registry nic1 natnetwork NatNetwork
Configurez la redirection des ports dans le réseau NAT NatNetwork :
desktop@serverXX:~$ VBoxManage natnetwork modify --netname NatNetwork --port-forward-4 "Docker_Debian_9:tcp:[]:2022:[10.0.2.15]:22" desktop@serverXX:~$ VBoxManage natnetwork modify --netname NatNetwork --port-forward-4 "Docker_Registry:tcp:[]:4022:[10.0.2.4]:22"
Connectez-vous à la VM Registry :
desktop@serverXX:~$ ssh -l trainee localhost -p 4022 trainee@localhost's password: trainee Linux registry 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Apr 17 15:36:25 2020 from 10.0.2.2 trainee@registry:~$ su - Mot de passe : fenestros root@registry:~#
Editez le fichier /etc/hosts :
root@registry:~# vi /etc/hosts root@registry:~# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 debian9.i2tch.loc debian9 10.0.2.4 myregistry.i2tch.loc myregistry 10.0.2.15 debian9.i2tch.loc debian9 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Créez maintenant un certificat auto-signé avec openssl :
root@registry:~# cd / && mkdir certs && openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt Generating a 4096 bit RSA private key ............................................................++ .......................................................................................................................................++ writing new private key to 'certs/domain.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:VAR Locality Name (eg, city) []:Toulon Organization Name (eg, company) [Internet Widgits Pty Ltd]:I2TCH LTD Organizational Unit Name (eg, section) []:TRAINING Common Name (e.g. server FQDN or YOUR name) []:myregistry Email Address []: root@registry:/# ls certs/ domain.crt domain.key
Supprimez le conteneur registry :
root@registry:/# docker rm registry registry
Créez un conteneur en mode sécurisé avec TLS à partir de l'image registry :
root@registry:/# docker run -d -p 5000:5000 --name registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2.0 943c01b67cf3f461270a55ac3d9df6622cc9d74e5f272e17153183ff29ee5932 root@debian9:/# root@registry:/# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 943c01b67cf3 registry:2.0 "registry cmd/regi..." 31 seconds ago Up 24 seconds 0.0.0.0:5000->5000/tcp registry ea239635e141 testcache "more /tmp/moment" 40 minutes ago Exited (0) 40 minutes ago test1 21b0490a93dd i2tch/mydocker "/entrypoint.sh my..." About an hour ago Exited (137) 18 minutes ago myDocker b9773e4aa06d i2tch/mongodb2 "docker-entrypoint..." 2 hours ago Exited (0) 18 minutes ago mongo2 bdb4bc0f81de i2tch/mongodb1 "docker-entrypoint..." 12 hours ago Created 27017/tcp mongo1 f5b45072b831 i2tch/mongodb "bash" 13 hours ago Exited (137) 18 minutes ago mongo 9731a48f126a nginx "nginx -g 'daemon ..." 13 hours ago Exited (0) 18 minutes ago cocky_gates eacd70596e23 nginx "nginx -g 'daemon ..." 13 hours ago Exited (0) 13 hours ago adoring_yonath cffb4456e9c4 ubuntu "/bin/bash" 14 hours ago Exited (0) 14 hours ago i2tch
Configurer le Client
Supprimez le conteneur registry :
root@debian9:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c4c7cad999cd registry:2.0 "registry cmd/regi..." 4 hours ago Exited (2) 4 hours ago registry ea239635e141 testcache "more /tmp/moment" 4 hours ago Exited (0) 4 hours ago test1 21b0490a93dd i2tch/mydocker "/entrypoint.sh my..." 4 hours ago Exited (137) 4 hours ago myDocker b9773e4aa06d i2tch/mongodb2 "docker-entrypoint..." 5 hours ago Exited (0) 4 hours ago mongo2 bdb4bc0f81de i2tch/mongodb1 "docker-entrypoint..." 16 hours ago Created 27017/tcp mongo1 f5b45072b831 i2tch/mongodb "bash" 16 hours ago Exited (137) 4 hours ago mongo 9731a48f126a nginx "nginx -g 'daemon ..." 16 hours ago Exited (0) 4 hours ago cocky_gates eacd70596e23 nginx "nginx -g 'daemon ..." 17 hours ago Exited (0) 17 hours ago adoring_yonath cffb4456e9c4 ubuntu "/bin/bash" 17 hours ago Exited (0) 17 hours ago i2tch root@debian9:~# docker rm registry registry root@debian9:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ea239635e141 testcache "more /tmp/moment" 4 hours ago Exited (0) 4 hours ago test1 21b0490a93dd i2tch/mydocker "/entrypoint.sh my..." 4 hours ago Exited (137) 4 hours ago myDocker b9773e4aa06d i2tch/mongodb2 "docker-entrypoint..." 5 hours ago Exited (0) 4 hours ago mongo2 bdb4bc0f81de i2tch/mongodb1 "docker-entrypoint..." 16 hours ago Created 27017/tcp mongo1 f5b45072b831 i2tch/mongodb "bash" 16 hours ago Exited (137) 4 hours ago mongo 9731a48f126a nginx "nginx -g 'daemon ..." 16 hours ago Exited (0) 4 hours ago cocky_gates eacd70596e23 nginx "nginx -g 'daemon ..." 17 hours ago Exited (0) 17 hours ago adoring_yonath cffb4456e9c4 ubuntu "/bin/bash" 17 hours ago Exited (0) 17 hours ago i2tch
ainsi que l'image du registry :
root@debian9:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE testcache latest c3b03bddaaad 4 hours ago 120MB <none> <none> 1df8c3603628 4 hours ago 120MB i2tch/mydocker latest c37edbd43993 5 hours ago 193MB localhost:88/mydocker latest c37edbd43993 5 hours ago 193MB <none> <none> d6b51963df8d 5 hours ago 193MB i2tch/mongodb2 latest 65e81f78c0f5 16 hours ago 240MB i2tch/mongodb1 latest 2de862819e94 16 hours ago 240MB i2tch/mongodb latest 01c4aa152be2 16 hours ago 1.04GB ubuntu latest ccc7a11d65b1 3 weeks ago 120MB centos latest 328edcd84f1b 4 weeks ago 193MB nginx latest b8efb18f159b 6 weeks ago 107MB debian wheezy-slim 884ca0b949e5 6 weeks ago 46.9MB hello-world latest 1815c82652c0 2 months ago 1.84kB registry 2.0 3bccd459597f 2 years ago 549MB root@debian9:~# docker rmi registry:2.0 Untagged: registry:2.0 Untagged: registry@sha256:3cac1869696e4ff3435bbc30391749ac373f7471736dbb48dfa9bfde08c4efd2 Deleted: sha256:3bccd459597f38e78ce95a408e506099644ca713d79157d2f3e3a7975f1c9146 Deleted: sha256:e486d081a2821af119adbc458214cacf510ebb519cdf31e04ac3d4c6ac521c31 Deleted: sha256:d206757aba612d90965729f186dfb70aa5e63b53dafd7e7b20a76005acddfe24 Deleted: sha256:1b953394add763fbaa50446b03d636f453fa75b2d12676ceb4b71681b4da6e7d Deleted: sha256:e8a2cacb793cb843e35bbf64e9c73d685d83ecc8192fbdbc098b0e5fbcced848 Deleted: sha256:19eec9bf8dcc3cb15b93cdcff717057444c540ee641cf20b7ef647d19b9d1df4 Deleted: sha256:2fb6f2d834e4dd55a7a6bb1472f5c293242e6439982332143d7332642a238d40 Deleted: sha256:e08b039d73e73f17b3fa02ebf9a28ef156a7b43b828cd67ed422b9d7a01e5482 Deleted: sha256:bd85e070a996530cc5f576bc5f56a0e3a159e00091410987416844de6e018415 Deleted: sha256:6269effe5aa88dfc0071a2841605d95c0d809111333b5044b2459b43e5879f44 Deleted: sha256:784ff50f126370cb3be928cd14a078605990efda458e73ad43f2a2e40e1efda2 Deleted: sha256:29efd197b6056e252ebb46fe1b315489c2f8e032eb32d1f6fcd0119ee9536df7 Deleted: sha256:3d42e373d713bfab9403159f282ba4cfaa7b4f33e57d5e36d4d2ca0ca1a2f4e7 Deleted: sha256:518c6772b2fc316c63e9f4f9745e3587f169ec916fd26749b0ce7bf1f36bb93b Deleted: sha256:e74bff63859c2597691fffd6fe95b35b0803f6791bc6565072bf07067574dba3 Deleted: sha256:f76baad394e6d835fa0e166254e9f70af873fe43232c67ac198a67865084ccee Deleted: sha256:b0eba742532f664bab6fc6d5bd00c60141397ba299f6743457f7ead64d7c714d Deleted: sha256:c10c49233bc62ce69aafa1a44a62d8639a7be08d68b1c23d6b25ebb13e5324b0 Deleted: sha256:1c8e9ba14469736fa03ede127e47f5821ca97b3029385ec1348e87932c875ff8 Deleted: sha256:611f5c9e21fce8d870f9ba82248980ca3baaaf95afef2b17504372d1ca03cb5a Deleted: sha256:4cb1abe123254326dba72305ef897fdf5364ebb1823413e13dbced41990f951e Deleted: sha256:e10e5ea91f007db418b284f4adc5f0b98f374d79ae52b9687b0d6d33865ffbcf Deleted: sha256:c69ae1aa46985cbaf186b6354c61a1d2e0d6af47133db47bf04f0c6eb9c858e9 root@debian9:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE testcache latest c3b03bddaaad 4 hours ago 120MB <none> <none> 1df8c3603628 4 hours ago 120MB i2tch/mydocker latest c37edbd43993 5 hours ago 193MB localhost:88/mydocker latest c37edbd43993 5 hours ago 193MB <none> <none> d6b51963df8d 5 hours ago 193MB i2tch/mongodb2 latest 65e81f78c0f5 16 hours ago 240MB i2tch/mongodb1 latest 2de862819e94 16 hours ago 240MB i2tch/mongodb latest 01c4aa152be2 16 hours ago 1.04GB ubuntu latest ccc7a11d65b1 3 weeks ago 120MB centos latest 328edcd84f1b 4 weeks ago 193MB nginx latest b8efb18f159b 6 weeks ago 107MB debian wheezy-slim 884ca0b949e5 6 weeks ago 46.9MB hello-world latest 1815c82652c0 2 months ago 1.84kB
Renommez l'image i2tch/mydocker afin de pointer vers le serveur de registre :
root@debian9:~# docker tag i2tch/mydocker myregistry:5000/mydocker root@debian9:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE testcache latest c3b03bddaaad 4 hours ago 120MB <none> <none> 1df8c3603628 4 hours ago 120MB i2tch/mydocker latest c37edbd43993 5 hours ago 193MB localhost:88/mydocker latest c37edbd43993 5 hours ago 193MB myregistry:5000/mydocker latest c37edbd43993 5 hours ago 193MB <none> <none> d6b51963df8d 5 hours ago 193MB i2tch/mongodb2 latest 65e81f78c0f5 16 hours ago 240MB i2tch/mongodb1 latest 2de862819e94 16 hours ago 240MB i2tch/mongodb latest 01c4aa152be2 16 hours ago 1.04GB ubuntu latest ccc7a11d65b1 3 weeks ago 120MB centos latest 328edcd84f1b 4 weeks ago 193MB nginx latest b8efb18f159b 6 weeks ago 107MB debian wheezy-slim 884ca0b949e5 6 weeks ago 46.9MB hello-world latest 1815c82652c0 2 months ago 1.84kB
Éditez le fichier /etc/hosts afin de pointer le 10.0.2.4 vers le nom myregistry :
root@debian9:~# vi /etc/hosts root@debian9:~# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 debian9.i2tch.loc debian9 10.0.2.4 myregistry.i2tch.loc myregistry 10.0.2.15 debian9.i2tch.loc debian9 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
De la machine virtuelle registry envoyez une copie du fichier /certs/domain.crt vers le répertoire /tmp de la machine virtuelle Debian_9 en le renommant ca.crt :
root@registry:~# scp /certs/domain.crt trainee@10.0.2.15:/tmp/ca.crt The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established. ECDSA key fingerprint is 79:00:60:0e:2b:71:5e:cb:1a:08:45:e8:ab:45:b8:dd. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.2.15' (ECDSA) to the list of known hosts. trainee@10.0.2.15's password: domain.crt 100% 2017 2.0KB/s 00:00
Dans la machine virtuelle Debian_9, déplacez le fichier /tmp/ca.crt vers le répertoire /etc/docker/certs.d/myregistry:5000/ :
root@debian9:~# mkdir -p /etc/docker/certs.d/myregistry:5000 root@debian9:~# mv /tmp/ca.crt /etc/docker/certs.d/myregistry:5000/
Testez la réponse du registre :
root@debian9:~# curl http://myregistry:5000/v2/
Finalement, envoyez l'image au registre :
root@debian9:~# docker push myregistry:5000/mydocker The push refers to a repository [myregistry:5000/mydocker] 873a8ac77d4d: Pushed b362758f4793: Pushed latest: digest: sha256:30866da81d92d2a1015b869c596ddd6e188f33894c41d8effa2161e5c2862b1f size: 5531
<html>
Copyright © 2020 Hugh NORRIS
</html>