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édentes Révision précédente
Prochaine révision
Révision précédente
informatique:docker:registrydocker [2023/11/24 07:46]
benoit [Préparation des répertoires]
informatique:docker:registrydocker [2023/11/24 13:16] (Version actuelle)
benoit [Se connecter et pousser une image sur la Registry]
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 62: Ligne 63:
  
  
 +Créer le fichier : 
 +  vim additional.conf
  
 +Ajouter le paramètre permettant à nginx de prendre en charge des fichiers jusqu'​à 2Go
 +  client_max_body_size 2G;
  
-==== Création du fichier Docker compose ​====+Créer le certificat SSL de notre registry :  
 +  cd /​mnt/​registry/​nginx/​ssl 
 +  openssl genrsa -out privkey.pem 2048 
 +  openssl req -new -sha256 -key /​mnt/​registry/​nginx/​ssl/​privkey.pem -out ${HOME}/​request.csr -subj "/C=FR/ST=Paris/L=Paris/O=Company/​OU=IT Department/​CN=registry.local"​ 
 +  openssl x509 -req -days 365 -in ${HOME}/​request.csr -signkey /​mnt/​registry/​nginx/​ssl/​privkey.pem -out /​mnt/​registry/​nginx/​ssl/​fullchain.pem 
 + 
 +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 115: 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.1700808373.txt.gz · Dernière modification: 2023/11/24 07:46 par benoit