GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment configurer le registre privé Docker sur CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Le registre Docker est une application qui vous permet de stocker et de distribuer les images Docker en interne (au sein de votre organisation). Docker a même un registre public, connu sous le nom de Docker Hub, gratuit pour stocker les images Docker.

Mais le problème avec le registre public Docker est que les images que vous y téléchargez deviennent publiques. Ce n'est pas ce à quoi vous ou votre organisation vous attendez lorsque vous travaillez pendant de longues heures pour construire une image et que cela devient public.

Pour surmonter cet obstacle, vous pouvez configurer un registre Docker pour votre projet en privé afin que seul vous ou votre organisation puissiez y stocker les images Docker et les distribuer à vos collègues.

Ici, dans ce guide technique, nous discuterons de la configuration du registre privé Docker sur CentOS 7 / Ubuntu 16.04 / Fédora 26/ 25 .

Infrastructures

Nom d'hôte Adresse IP Système d'exploitation Objectif
registry.itzgeek.local 192.168.12.10 CentOS 7 Agit en tant que serveur de registre privé Docker
build.itzgeek.local 192.168.12.20 Ubuntu 16.04 Agit comme un nœud de moteur Docker où les développeurs créeront les images Docker avec dockerfile ou docker compose, puis téléchargeront ces images sur le serveur de registre privé docker ci-dessus.
deploy.itzgeek.local 192.168.12.30 Fédora 26/25 Agit comme un nœud de moteur Docker où nous déployons des conteneurs téléchargés (pull) à partir d'un serveur de registre privé.
Ici, j'utilise un environnement mixte (OS) pour démontrer. Je vous recommande de n'utiliser qu'un environnement homogène, ce qui est facile pour résoudre les problèmes qui surviennent.

Prérequis

Installez le moteur Docker sur tous vos nœuds et assurez-vous que le service Docker est opérationnel.

LIRE  :Comment installer Docker CE sur CentOS 7
LIRE  :Comment installer Docker CE sur Ubuntu 16.04
LIRE  :Comment installer Docker CE sur Fedora 26/25

Configurer le registre privé Docker

Connectez-vous au nœud de registre et extrayez l'image de registre de Docker Hub.

[root@registry ~]# docker pull registry

Choisissez si vous souhaitez opter pour un registre Docker simple ou sécurisé.

Registre Docker standard

[root@registry ~]# docker run -dit -p 5000:5000 --name registry registry

Registre privé Docker sécurisé

Par défaut, le nœud Docker utilise une connexion sécurisée sur TLS pour charger ou télécharger des images vers ou depuis le registre privé. Vous pouvez utiliser des certificats TLS signés par une autorité de certification ou auto-signés sur le serveur de registre.

Ici, je vais utiliser un certificat auto-signé pour sécuriser Docker Registry. Créons un certificat auto-signé à l'aide de la commande suivante.

[root@registry ~]# mkdir -p /certs

[root@registry ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/ca.key -x509 -days 365 -out /certs/ca.crt

Generating a 4096 bit RSA private key
............................................++
.....................................................................................................++
writing new private key to '/certs/ca.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) [XX]:IN
State or Province Name (full name) []:TN
Locality Name (eg, city) [Default City]:CHN
Organization Name (eg, company) [Default Company Ltd]:ITzGeek
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:registry.itzgeek.local
Email Address []:[email protected]

Remplacez "registry.itzgeek.local ” avec le FQDN de votre serveur de registre.

Certificat généré "ca.crt" doivent être placés sur tous vos nœuds de construction/déploiement pour faire confiance à ce certificat.

Démarrez le conteneur de registre Docker avec les informations de certificat.

[root@registry ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/ca.crt -e REGISTRY_HTTP_TLS_KEY=/certs/ca.key registry

Maintenant, vous avez un conteneur de serveur de registre nommé "registre " exécuté sur " registry.itzgeek.local ".

[root@registry ~]# docker ps

Sortie :

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8641fbc895f5        registry            "/entrypoint.sh /e..."   44 seconds ago      Up 41 seconds       0.0.0.0:5000->5000/tcp   registry

Pare-feu

Vous devrez ouvrir les ports suivants sur le pare-feu pour que le registre Docker soit disponible en dehors du réseau (vers build.itzgeek.local /deploy.itzgeek.local )

Vous devez exécuter la commande suivante sur le serveur Docker Registry (registry.itzgeek.local), en fonction de votre système d'exploitation.

Si votre registre Docker est sur CentOS 7 / Fedora 26/25,

[root@registry ~]# firewall-cmd --permanent --add-port=5000/tcp
[root@registry ~]# firewall-cmd --reload

Si votre registre Docker est sur Ubuntu 16.04,

root@registry:~# ufw status
root@registry:~# ufw allow 5000/tcp
root@registry:~# ufw reload ufw enable

Le registre Docker est maintenant prêt à distribuer des images Docker.

Créer et télécharger une image Docker sur un serveur de registre privé

Connectez-vous à votre nœud de moteur Docker de construction, ex. "build.itzgeek.local

Créer une image Docker

Créons une image Docker (pour un conteneur Docker personnalisé) pour la télécharger sur le serveur de registre privé. Vous pouvez construire/créer des images de conteneur de trois manières.

1. Engagez-vous
2. Dockerfile
3. Docker Compose.

Construisez et gardez votre image docker prête à être téléchargée en suivant l'une des méthodes répertoriées ci-dessus.

LIRE  :Comment créer des images Docker avec Docker Commit
LIRE  :Comment créer des images Docker avec DockerFile

J'ai construit une image docker appelée "mycentos:httpdv1.0 ” sur “build.itzgeek.local " et nous allons maintenant le télécharger sur le serveur de registre privé.

root@build:~# docker images

Sortie :

Maintenant, renommez l'image docker quelque chose comme registryserver:portnumber/image name:tag .

Si le nom de l'image ne correspond pas au format donné, la commande docker push ou pull essaiera de charger ou de télécharger l'image à partir du registre public, et non du registre privé.

Pour renommer l'image docker, utilisez docker tag commande.

root@build:~# docker tag mycentos:httpdv1.0 registry.itzgeek.local:5000/mycentos:httpdv1.0

Vérifiez à nouveau la liste des images Docker.

Télécharger une image Docker

Dépend du mode de communication (sécurisé ou non sécurisé ) de Docker Registry, suivez l'une des méthodes ci-dessous.

Non sécurisé (registre HTTP simple)

Editer/Créer le fichier « daemon.json " dans " /etc/docker/ ” répertoire.

root@build:~# vi /etc/docker/daemon.json

Ajoutez-y le contenu suivant.

{
  "insecure-registries" : ["registry.itzgeek.local:5000"]
}

Sécurisé (auto-signé)

Copiez le certificat "ca.crt " du serveur de registre " registry.itzgeek.local ” à “/etc/docker/certs.d/registry.itzgeek.local:5000/ca.crt ” sur “build.itzgeek.local ".

root@build:~# mkdir -p /etc/docker/certs.d/registry.itzgeek.local:5000/

root@build:~# scp -pr [email protected]:/certs/ca.crt /etc/docker/certs.d/registry.itzgeek.local:5000/

Dans les deux cas, vous devrez redémarrer le service du moteur Docker.

root@build:~# systemctl restart docker

Téléchargez l'image Docker sur le serveur de registre privé à l'aide de la commande suivante.

root@build:~# docker push registry.itzgeek.local:5000/mycentos:httpdv1.0

Téléchargez et déployez l'image du conteneur Docker à partir du serveur de registre privé

Connectez-vous à votre nœud de déploiement de moteur Docker, ex. « deploy.itzgeek.local ".

Selon le mode de communication (sécurisé ou non sécurisé) de Docker Registry, suivez l'une des méthodes ci-dessous.

Non sécurisé (registre HTTP simple)

Editer/Créer le fichier « daemon.json " dans " /etc/docker/ ” répertoire.

[root@deploy ~]# vi /etc/docker/daemon.json

Ajoutez-y le contenu suivant.

{
  "insecure-registries" : ["registry.itzgeek.local:5000"]
}

Sécurisé (auto-signé)

Copiez le certificat "ca.crt " du serveur de registre " registry.itzgeek.local ” à “/etc/docker/certs.d/registry.itzgeek.local:5000/ca.crt ” sur “deploy.itzgeek.local ".

[root@deploy ~]# mkdir -p /etc/docker/certs.d/registry.itzgeek.local:5000/

[root@deploy ~]# scp -pr [email protected]:/certs/ca.crt /etc/docker/certs.d/registry.itzgeek.local:5000/

Dans les deux cas, vous devrez redémarrer le service du moteur Docker.

[root@deploy ~]# systemctl restart docker

Téléchargez l'image Docker sur le serveur de registre privé à l'aide de la commande suivante.

[root@deploy ~]# docker pull registry.itzgeek.local:5000/mycentos:httpdv1.0

Maintenant, vérifiez la liste des images disponibles en utilisant "images docker ” commande

[root@deploy ~]# docker images

Sortie :

L'image Docker est maintenant prête à être déployée.

LIRE  :Comment déployer des conteneurs Docker – Interface de ligne de commande

C'est tout.


Cent OS
  1. Comment configurer et utiliser le registre Docker privé

  2. Comment configurer un registre Docker privé sur Rocky Linux 8

  3. Comment configurer Autofs sur CentOS 7 / Ubuntu 16.04 / Debian 9 / Fedora 27/26

  4. Comment configurer le serveur SVN sur CentOS, RHEL et Fedora

  5. Comment installer docker sur CentOS / RHEL / Fedora

Comment installer et configurer Docker Swarm sur CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Comment installer Dropbox sur Fedora 27 / Fedora 26/25/24

Comment installer Docker sur CentOS

Comment configurer Openshift Origin sur CentOS 8

Comment installer Docker sur CentOS 7

Comment créer un registre Docker privé sur Ubuntu Linux