Configurer le registre Docker localement sur CentOS 7

introduction

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.

procédure

À peu près les étapes suivantes

Installer Docker

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émarrer Docker

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

Préparation du registre 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

Lancer le registre Docker

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

Préparation de l'image côté serveur (téléchargement et registre)

Téléchargez l'image d'origine pour vous inscrire auprès du serveur de référentiel 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

Créer une image à enregistrer dans le registre docker (étiqueté)

À 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 dans le registre Docker

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

Télécharger des images à partir du registre Docker

Télécharger côté serveur

Vous pouvez télécharger à partir du serveur en exécutant la commande suivante

docker pull localhost:5000/aaa/centos_local:1.0

Télécharger côté client

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

Configurer le registre Docker localement sur CentOS 7
Installation de Docker sur CentOS 6
Configurer GitLab avec docker
Configurer ansible-playbook sur Ubuntu 20.04
WordPress avec Docker Compose sur CentOS 8
Utiliser Docker CE (officiel) avec CentOS 8
Installez Docker sur Ubuntu et configurez la connexion à distance à l'aide de tls
Publier l'image Docker dans le registre de packages GitHub
Configurer le service de métabase sur Windows Server 2012
Liberty sur Docker
Les débutants de Gachi ont-ils configuré des conteneurs avec Kubernetes? Jusqu'à ce que···
Configurer un serveur SSH sur Ubuntu 20.04, qui est WSL2
Configurer un serveur virtuel Cent OS avec Vagrant
Redmine sur Docker
Je veux accéder à l'API avec Rails sur plusieurs docker-composes configurés localement
Tutoriel Maven sur CentOS 7
Utiliser perltidy sur CentOS 8
Installez Golang sur CentOS 8
Essayez OpenLiteSpeed sur CentOS8
mémo python sur docker
Installez Neo4j 4.1.3 sur centOS
Tomcat v8 sur CentOS7
Installez Docker sur Manjaro
Installez Vertica 10.0 sur CentOS 6.10
Installation de Zabbix 5 sur CentOS 8
Utilisez mod_auth_cas sur CentOS 8
Installez Python 3 sur CentOS 7
Installez kuromoji sur CentOS7
Jetty v8 sur CentOS7
Installez PostGIS 2.5.5 sur CentOS7
Installez jpndistrict sur CentOS 7
Installez Redmine 4.1.1 sur CentOS 7
Installation de Smokeping sur CentOS7
Installez PostgreSQL 13 sur CentOS 7.5
Jusqu'à ce que vous démarriez nginx sur CentOS en utilisant Docker sur Mac OS
Configurer un serveur MineCraft Paper avec Ubuntu 20.04.1 LTS ② Mise à jour
Configurer Django sur Ubuntu 16.04 avec PostgreSQL et Gunicorn sur ECS