• Assurez la sécurité des applications de la bonne manière! Détectez, protégez, surveillez, accélérez et plus encore…
  • Docker Registry est une application logicielle qui vous permet de créer et de stocker vos images au sein de votre organisation.

    Vous pouvez également créer et télécharger vos images sur le Docker Registre public du hub. Mais ces images deviennent publiques et tout le monde peut accéder à vos images et les utiliser. Il est donc recommandé d'utiliser le registre privé Docker qui vous permet de contrôler et de protéger vos images.

    Dans ce tutoriel, je vais vous expliquer comment configurer un registre privé Docker sur Ubuntu 18.04.

    Nos Exigences

    • Deux serveurs Ubuntu avec les informations d'identification racine
    • Une adresse IP statique sur les deux serveurs

    Commencer

    Avant de commencer, vous devrez configurer la résolution du nom d'hôte sur les deux systèmes. Ainsi, les deux systèmes peuvent communiquer entre eux par nom d'hôte.

    Pour ce faire, exécutez la commande suivante sur les deux systèmes:

    echo "192.168.0.100 server" >> /etc/hosts
    echo "192.168.0.102 client" >> /etc/hosts

    Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

    Installer Docker

    Ensuite, vous devrez installer le package Docker sur les deux systèmes. Par défaut, Docker n'est pas disponible dans le référentiel par défaut Ubuntu 18.04. Vous devrez donc les ajouter.

    Tout d'abord, installez les packages requis avec la commande suivante:

    apt-get install apt-transport-https software-properties-common ca-certificates curl -y

    Ensuite, ajoutez le référentiel Docker avec la commande suivante:

    wget https://download.docker.com/linux/ubuntu/gpg 
    apt-key add gpg
    echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" | tee /etc/apt/sources.list.d/docker.list

    Ensuite, mettez à jour le référentiel et installez Docker avec la commande suivante:

    apt-get update -y
    apt-get install docker-ce -y

    Une fois l'installation terminée, vérifiez l'état du docker avec la commande suivante:

    systemctl status docker

    Vous devriez voir la sortie suivante:

    docker.service - Docker Application Container Engine
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    Active: active (running) since Wed 2019-05-01 15:08:45 UTC; 7min ago
    Docs: https://docs.docker.com
    Main PID: 2658 (dockerd)
    Tasks: 8
    CGroup: /system.slice/docker.service
    └─2658 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

    Installer le conteneur de registre Docker

    Tout d'abord, vous devrez installer le conteneur de registre sur votre système serveur. Vous pouvez le faire en exécutant la commande suivante:

    docker pull registry

    Une fois l'image de registre téléchargée, vous devriez voir la sortie suivante:

    Using default tag: latest
    latest: Pulling from library/registryc
    87736221ed0: Pull complete 
    1cc8e0bb44df: Pull complete 
    54d33bcb37f5: Pull complete 
    e8afc091c171: Pull complete 
    b4541f6d3db6: Pull complete 
    Digest: sha256:3b00e5438ebd8835bcfa7bf5246445a6b57b9a50473e89c02ecc8e575be3ebb5
    Status: Downloaded newer image for registry:latest

    Ensuite, démarrez le conteneur de registre avec la commande suivante:

    docker run -d -p 5000:5000 --restart=always --name registry registry

    Vous pouvez voir le conteneur de registre en cours d'exécution avec la commande suivante:

    docker ps

    Vous devriez voir la sortie suivante:

    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    4912e461745f registry "/entrypoint.sh /etc…" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp registry

    Créer une image de conteneur Docker sur le système client

    Votre serveur de registre est maintenant prêt à être utilisé. Il est temps de créer une image de conteneur Docker sur le système client.

    Tout d'abord, connectez-vous au système client et créez un fichier docker pour créer l'image du serveur Web Nginx:

    mkdir Image
    cd Image
    nano dockerfile

    Ajoutez les lignes suivantes:

    FROM ubuntu:18.04
    LABEL project="Nginx Web Server Image"
    LABEL maintainer "[email protected]"
    RUN \a
    pt-get update && \
    apt-get install -y nginx && \
    rm -rf /var/lib/apt/lists/* && \
    echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
    chown -R www-data:www-data /var/lib/nginx
    # Define mountable directories.
    VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
    # Define working directory.WORKDIR /etc/nginx
    # Define default command.CMD ["nginx"]
    # Expose ports.
    EXPOSE 80
    EXPOSE 443

    Enregistrez et fermez le fichier. Ensuite, créez une image Nginx en exécutant la commande suivante:

    docker build -t ubuntu:nginx .

    Après avoir créé l'image Nginx avec succès, vous devriez voir la sortie suivante:

    ---> bc6e61406108
    Step 5/9 : VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
    ---> Running in 30832b7ff816
    Removing intermediate container 30832b7ff816
    ---> 1940ec1c2225Step 6/9 : WORKDIR /etc/nginx
    ---> Running in 88755ef2d7c8
    Removing intermediate container 88755ef2d7c8
    ---> 4fe930c96a73Step 7/9 : CMD ["nginx"]
    ---> Running in c8d492317d88
    Removing intermediate container c8d492317d88
    ---> 3218acfd15f8Step 8/9 : EXPOSE 80
    ---> Running in 35921ef45db9Removing intermediate container 35921ef45db9
    ---> a6a299b86a6dStep 9/9 : EXPOSE 443
    ---> Running in 755441cefe2f
    Removing intermediate container 755441cefe2f
    ---> 9be7dc6b0825
    Successfully built 9be7dc6b0825
    Successfully tagged ubuntu:nginx

    Ensuite, vous pouvez vérifier l'image générée avec la commande suivante:

    docker images

    Vous devriez voir votre image nginx dans la sortie suivante:

    REPOSITORY TAG IMAGE ID CREATED SIZE
    ubuntu nginx 9be7dc6b0825 About a minute ago 161MB
    ubuntu 18.04 d131e0fa2585 4 days ago 102MB
    registry latest f32a97de94e1 7 weeks ago 25.8MB

    Ensuite, vous devrez renommer votre image nginx au format «registryserver: portnumber / image name: tag».

    Vous pouvez le faire avec la commande suivante:

    docker tag ubuntu:nginx server:5000/ubuntu:nginx

    Télécharger l'image Nginx sur un serveur de registre privé

    Vous pouvez maintenant télécharger votre image Nginx générée sur Private Registry Server à l'aide de la commande push:

    docker push server:5000/ubuntu:nginx

    Une fois l'image téléchargée avec succès, vous devriez voir la sortie suivante:

    The push refers to repository [server:5000/ubuntu]
    2e5us8en4s9d: Pushed 
    l1is9e9d8j7e: Pushed 
    nginx: digest: sha256:aa0d8fi49dir0d7rn33nee122b size: 1862

    Vous pouvez également télécharger l'image téléchargée à partir du serveur de registre avec la commande suivante:

    docker pull server:5000/ubuntu:nginx

    J'espère que vous avez maintenant suffisamment de connaissances pour configurer votre propre serveur de registre docker privé sur un serveur de production. Si vous cherchez à obtenir plus de travaux pratiques sur Docker, consultez ceci Cours en ligne.