Skip to content

Instantly share code, notes, and snippets.

@jljouannic
Created August 10, 2016 13:06
Show Gist options
  • Save jljouannic/155d6a838c02e74ff1aaf873d896c05f to your computer and use it in GitHub Desktop.
Save jljouannic/155d6a838c02e74ff1aaf873d896c05f to your computer and use it in GitHub Desktop.
Docker registry installation

Installation d’un registry Docker

Docker fourni une solution de registry privé sous la forme d’une image docker appelée registry. Nous allons configurer deux conteneurs à partir de cette image :

  • un miroir local du Docker Hub,

  • un registry privé destiné à héberger les images créées en interne.

Installation d’un mirroir pour Docker Hub

Répertoires

Créer le répertoire /data/registry/docker-hub.

Configuration du registry

Un fichier docker-hub.yml [1] est créé avec le contenu suivant :

version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        blobdescriptor: inmemory
    delete:
        enabled: true
    filesystem:
        rootdirectory: /var/lib/registry
http:
    addr: :5000
    headers:
        X-Content-Type-Options: [nosniff]
proxy:
    remoteurl: https://registry-1.docker.io
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

Ce fichier est déposé dans le répertoire /data/registry/.

Création du conteneur docker-hub

Exécuter la commande suivante pour finaliser la création du mirroir :

$ docker run -d -p 5000:5000 --restart=always --name docker-hub \
    -v /data/registry/docker-hub:/var/lib/registry \
    -v /data/registry/docker-hub.yml:/etc/docker/registry/config.yml \
    registry:2.5.0
Note
-d

le conteneur est démarré en mode démon.

-p 5000:5000

le port 5000 du host est utilisé.

--restart=always

le conteneur est configuré pour être lancé automatiquement lors du démarrage du service docker.

--name docker-hub

nom donné au conteneur.

-v …:…

deux volumes sont spécifié : le premier pour le répertoire de stockage, le second pour le fichier de configuration du registry.

registry:2.5.0

la version 2.5.0 de l’image registry est utilisée.

Configuration du service docker

Les collaborateurs souhaitant bénéficier du mirroir pour le hub Docker doivent configurer le service docker.

Ubuntu 14.04

  • Éditer le fichier /etc/default/docker et ajouter ou modifier la variable d’environnement DOCKER_OPTS :

    DOCKER_OPTS="--registry-mirror=http://<docker-host>:5000 …"
  • Sauvegarder les modification puis redémarrer le service docker :

    $ sudo service docker restart

Ubuntu 15.04

  • S’il n’existe pas, créer le fichier /etc/systemd/system/docker.service.d/override.conf avec le contenu suivant :

    [Service]
    ExecStart=
    ExecStart=/usr/bin/docker daemon --registry-mirror=http://<docker-host>:5000 -H fd://
  • Sinon, ajouter l’option --registry-mirror=http://<docker-host>:5000 sur la seconde ligne débutant par ExecStart

  • Sauvegarder les modification puis recharger la configuration de systemd :

    $ sudo systemctl daemon-reload
  • Enfin redémarrer le service docker :

    $ sudo systemctl restart docker

Installation d’un registry privé

Répertoires

Créer le répertoire /data/registry/my-registry

Configuration du registry

Un fichier my-registry.yml [1] est créé avec le contenu suivant :

version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        blobdescriptor: inmemory
    delete:
        enabled: true
    filesystem:
        rootdirectory: /var/lib/registry
http:
    addr: :5000
    headers:
        X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

Ce fichier est déposé dans le répertoire /data/registry/.

Création du conteneur my-registry

Exécuter la commande suivante pour finaliser la création du mirroir :

$ docker run -d -p 5001:5000 --restart=always --name my-registry \
    -v /data/registry/my-registry:/var/lib/registry \
    -v /data/registry/my-registry.yml:/etc/docker/registry/config.yml \
    registry:2.5.0
Note
-d

le conteneur est démarré en mode démon.

-p 5001:5000

le port 5001 du host est utilisé.

--restart=always

le conteneur est configuré pour être lancé automatiquement lors du démarrage du service docker.

--name my-registry

nom donné au conteneur.

-v …:…

deux volumes sont spécifié : le premier pour le répertoire de stockage, le second pour le fichier de configuration du registry.

registry:2.5.0

la version 2.5.0 de l’image registry est utilisée.

Configuration du service docker

Le service docker doit être démarré avec une nouvelle option --insecure-registry pour pouvoir interragir avec le registry privé my-registry.

Ubuntu 14.04

  • Éditer le fichier /etc/default/docker et ajouter ou modifier la variable d’environnement DOCKER_OPTS :

    DOCKER_OPTS="--insecure-registry <docker-host>:5001 …"
  • Sauvegarder les modification puis redémarrer le service docker :

    $ sudo service docker restart

Ubuntu 15.04

  • S’il n’existe pas, créer le fichier /etc/systemd/system/docker.service.d/override.conf avec le contenu suivant :

    [Service]
    ExecStart=
    ExecStart=/usr/bin/docker daemon --insecure-registry <docker-host>:5001 -H fd://
  • Sinon, ajouter l’option --insecure-registry <docker-host>:5001 sur la seconde ligne débutant par ExecStart

  • Sauvegarder les modification puis recharger la configuration de systemd :

    $ sudo systemctl daemon-reload
  • Enfin redémarrer le service docker :

    $ sudo systemctl restart docker

1. Le contenu de ce fichier est basé sur l’exemple de configuration disponible dans le repository Github du projet distribution de Docker. Les explications des options de configuration sont disponibles à cette adresse : http://docs.docker.com/registry/configuration/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment