Outils pour utilisateurs

Outils du site


informatique:docker:registrydocker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:docker:registrydocker [2023/11/24 07:06] – [Préparation des dossiers et fichiers requis] benoitinformatique:docker:registrydocker [2023/11/24 12:16] (Version actuelle) – [Se connecter et pousser une image sur la Registry] benoit
Ligne 4: Ligne 4:
  
 ==== Prérequis ==== ==== Prérequis ====
 +
 Installer Docker compose : Installer Docker compose :
-  apt install docker-compose+  apt install apache2-utils
  
 ==== Préparation des dossiers et fichiers requis ==== ==== Préparation des dossiers et fichiers requis ====
Ligne 68: Ligne 69:
   client_max_body_size 2G;   client_max_body_size 2G;
  
-Créer le certificat SSL de notre regitry : +Créer le certificat SSL de notre registry : 
   cd /mnt/registry/nginx/ssl   cd /mnt/registry/nginx/ssl
   openssl genrsa -out privkey.pem 2048   openssl genrsa -out privkey.pem 2048
Ligne 74: Ligne 75:
   openssl x509 -req -days 365 -in ${HOME}/request.csr -signkey /mnt/registry/nginx/ssl/privkey.pem -out /mnt/registry/nginx/ssl/fullchain.pem   openssl x509 -req -days 365 -in ${HOME}/request.csr -signkey /mnt/registry/nginx/ssl/privkey.pem -out /mnt/registry/nginx/ssl/fullchain.pem
  
-==== Création du fichier Docker compose ====+Pour retreindre l'accès à la registry, nous allons créer un compte utilisateur :  
 +  cd /mnt/registry/auth/ 
 +  htpasswd -Bc registry.passwd benoit 
 + 
 +==== Préparation de lancement des conteneur pour la Registry ====
    
 Créer un fichier Docker compose : Créer un fichier Docker compose :
Ligne 125: Ligne 130:
   * **Registry -> image** : La registry sera un conteneur créé à partir de l'image ''registry:2'' du Docker Hub.   * **Registry -> image** : La registry sera un conteneur créé à partir de l'image ''registry:2'' du Docker Hub.
   * **restart: always** : Permet de s'assure de démarrer Docker Registry en tant que service dès que vous démarrez le système.   * **restart: always** : Permet de s'assure de démarrer Docker Registry en tant que service dès que vous démarrez le système.
 +
 +Lancer les conteneurs de registry :
 +  cd /mnt/registry
 +  docker compose up -d
 +
 +Pour vérifier le fonctionnement :
 +  docker ps
 +  docker compose ps
 +
 +==== Configuration du client Docker ====
 +
 +:!: A CORRIGER :!:
 +
 +Il faut autoriser le client à utiliser une registry avec un certificat non valide.
 +
 +Récupérer l'IP du conteneur et l'enregistrement ''registry.local'' au fichier ''/etc/hosts'' : 
 +
 +  REGIP=$(docker inspect -f {{.NetworkSettings.Networks.registry_mynet.IPAddress}} nginx)
 +  echo "${REGIP} registry.local" >> /etc/hosts
 +
 +Editer le fichier suivant :
 +  vim /etc/docker/daemon.json
 +
 +Et ajouter les lignes suivantes :
 +
 +  {
 +    "insecure-registries" : ["registry.local:443"]
 +  }
 +
 +Relancer le service Docker :
 +  systemctl restart docker
 +
 +==== Se connecter et pousser une image sur la Registry ====
 +
 +Pour se connecter à la Registry :
 +  docker login https://127.0.0.1/
 +
 +Séquence et résultat : 
 +  Username: benoit
 +  Password:
 +  WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
 +  Configure a credential helper to remove this warning. See
 +  https://docs.docker.com/engine/reference/commandline/login/#credentials-store
 +  
 +  Login Succeeded
 +
 +Avant de pousser une image, il faut la retagguer avec l'adresse de la registry ''127.0.0.1'' par exemple :
 +  docker image tag httpd:latest 127.0.0.1/myhttpd:v1
 +
 +Ensuite on peut la pousser
 +  docker push 127.0.0.1/myhttpd:v1
 +
 +Vérification : 
 +  curl -u benoit --insecure https://127.0.0.1/v2/_catalog
 +
 +Résultat attendu : 
 +  Enter host password for user 'benoit':
 +  {"repositories":["myhttpd"]}
 +
 +ou
 +  curl -u benoit --insecure https://127.0.0.1/v2/myhttpd/tags/list
 +
 +Pour utiliser une image de notre Registry : 
 +  docker run -d 127.0.0.1/myhttpd:v1
informatique/docker/registrydocker.1700809583.txt.gz · Dernière modification : de benoit