Skip to main content

Labo 12 - Docker Registry Local - Commit

Nous allons voir comment créer un registre local d'images Docker afin de pouvoir les télécharger plus rapidement, créer des images modifiées ou simplement sauvegardé les images existantes

Considérons que votre machine hébergeant le registre local est un machine sous Linux et que docker et docker-compose sont installés.

Nous installerons une version dite insecure qui n'est pas viable en production

Vous pourrez retrouver la documentation complète ici

Tout d'abord, il faut éditer ou créer le fichier docker-compose.yml

sudo vim /opt/docker/docker-compose.yml
version: "3.8"
services:
  registry:
    container_name: registry
    restart: always
    image: registry:latest
    ports:
      - 5000:5000
    volumes:
      - /opt/docker/registry/data:/var/lib/registry
      - /opt/docker/registry/certs:/certs
      - /opt/docker/registry/auth:/auth

Ensuite, il faudra éditer ou créer un fichier sur la machine qui hébergera le registre local ainsi que sur celle qui voudra récupérer l'image

sudo vim /etc/docker/daemon.json
{
  "insecure-registries" : ["myregistry.local:5000"]
}

Ensuite il faudra modifier le fichier hostname et le fichier hosts de notre machine. A noter qu'il faudra bien déclarer la machine hébergeant le registre local dans le fichier hosts des autres machines voulant récupérer les images

Pour le fichier hostname

sudo nano /etc/hostname
myregistry.local

Et pour le fichier hosts

sudo vim /etc/hosts
127.0.0.1	localhost
192.168.1.226   localhost
127.0.0.1	myregistry.local
192.168.1.226   myregistry.local

Ensuite on redémarre les démons et le service docker

sudo systemctl daemon-reload
sudo systemctl restart docker

Maintenant on peut lancer le conteneur

sudo docker-compose up -d

Le conteneur tourne et est opérationnel

docker push bash

docker tag

sudo firewall-cmd --add-port=5000/tcp --permanent
sudo firewall-cmd --reload