Bien qu'il existe diverses images sur DockerHub, je voulais télécharger et lancer ma propre image Docker dans mon registre à tout moment.
Vous pouvez préparer un Dockerfile et le créer à partir de l'image Docker téléchargée depuis DockerHub, mais cela prend un temps surprenant, alors j'aimerais préparer une image dans un état prêt et la mettre sur un serveur Docker.
La communication avec l'enregistrement de certificat via HTTPS est également possible, mais il ne s'agit que d'une méthode de préparation d'un environnement qui peut être utilisé rapidement pour un usage interne.
Avoir deux environnements (tels que VM) sur le serveur et le client.
À peu près les étapes suivantes
Doit être installé côté serveur et client Redistry. Pour installer docker à rpm, vous devez enregistrer la destination de téléchargement.
yum -y install yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
Démarrez le service docker côté serveur et client Redistry, puis démarrez-le automatiquement au démarrage du système d'exploitation.
systemctl start docker
systemctl enable docker
Téléchargez l'image du registre sur le serveur du registre
docker pull registry
Une image docker est ajoutée comme indiqué ci-dessous
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest 2d4f4b5309b1 3 months ago 26.2MB
Démarrez Docker Registry. À ce stade, puisque nous voulons rendre l'image persistante sur le registre, nous montons le répertoire du système d'exploitation hôte sur le conteneur.
docker run -d -p 5000:5000 \
-v /var/opt:/var/lib/registry \
registry
Confirmez que le conteneur a démarré
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
35b3882b8536 registry "/entrypoint.sh /etc…" About an hour ago Up About an hour 0.0.0.0:5000->5000/tcp dreamy_roentgen
Le répertoire suivant sera créé sur le système d'exploitation hôte et sera monté sous ce répertoire.
ls /var/opt/docker/registry/v2/
blobs repositories
Lorsque l'image est enregistrée, il s'agit du répertoire dans lequel l'image est enregistrée dans les référentiels comme indiqué ci-dessous.
ls -l /var/opt/docker/registry/v2/repositories/aaa
Total 0
drwxr-xr-x 5 racine racine 55 16 septembre 15:33 centos_local
Tout va bien, mais téléchargez CentOS pour le moment
docker pull centos
Using default tag: latest
latest: Pulling from library/centos
3c72a8ed6814: Pull complete
Digest: sha256:76d24f3ba3317fa945743bb3746fbaf3a0b752f10b10376960de01da70685fbd
Confirmez qu'il a été téléchargé
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0d120b6ccaa8 5 weeks ago 215MB
registry latest 2d4f4b5309b1 2 months ago 26.2MB
À l'origine, j'ai utilisé Dockerfile etc. pour créer une image avec divers outils et paramètres, mais cette fois, j'utilise simplement l'image CentOS téléchargée telle quelle
docker tag centos localhost:5000/aaa/centos_local:1.0
Lorsque vous le marquez, vous pouvez créer une image comme celle ci-dessous.
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0d120b6ccaa8 5 weeks ago 215MB
localhost:5000/aaa/centos_local 1.0 0d120b6ccaa8 5 weeks ago 215MB
registry latest 2d4f4b5309b1 2 months ago 26.2MB
Enregistrer l'image étiquetée dans le registre docker
docker push localhost:5000/aaa/centos_local:1.0
The push refers to repository [localhost:5000/iseki/centos_local]
291f6e44771a: Pushed
1.0: digest: sha256:fc4a234b91cc4b542bac8a6ad23b2ddcee60ae68fc4dbd4a52efb5f1b0baad71 size: 529
Après l'enregistrement, l'image n'est plus nécessaire et sera supprimée
docker rmi localhost:5000/iseki/centos_local:1.0
Untagged: localhost:5000/iseki/centos_local:1.0
Untagged: localhost:5000/iseki/centos_local@sha256:fc4a234b91cc4b542bac8a6ad23b2ddcee60ae68fc4dbd4a52efb5f1b0baad71
Après la suppression, confirmez qu'il n'y a pas d'image dans la liste
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0d120b6ccaa8 5 weeks ago 215MB
registry latest 2d4f4b5309b1 2 months ago 26.2MB
Vous pouvez télécharger à partir du serveur en exécutant la commande suivante
docker pull localhost:5000/aaa/centos_local:1.0
Du côté client, vous ne pouvez pas vous connecter sauf si vous entrez les paramètres suivants dans le "côté client"
cat /etc/docker/daemon.json
{ "insecure-registries":["<IP ou nom d'hôte du serveur Docker Registry>:5000"] }
Définissez les paramètres ci-dessus et redémarrez le service Docker
systemctl restart docker
Dans cet état, exécutez la commande pour acquérir l'image à partir du serveur docker Registroy.
docker pull 10.1.5.25:5000/aaa/centos_local:1.0
1.0: Pulling from iseki/centos_local
3c72a8ed6814: Pull complete
Digest: sha256:fc4a234b91cc4b542bac8a6ad23b2ddcee60ae68fc4dbd4a52efb5f1b0baad71
Status: Downloaded newer image for 10.1.5.25:5000/aaa/centos_local:1.0
10.1.5.25:5000/aaa/centos_local:1.0
L'image du docker est téléchargée
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.1.5.25:5000/aaa/centos_local 1.0 0d120b6ccaa8 7 weeks ago 215MB
Recommended Posts