Docker – Installation et Utilisation


1) Préparation de l’environnement

Avant d’installer Docker et de créer nos Containers, il faut s’assurer que le système est correctement configuré.
Important : Nous supposons que le paquet sudo est installé sur le système (apt install sudo)

1.1) Configuration de l’heure

Vous pouvez obtenir la liste des fuseaux horaire acceptés en utilisant la commande : timedatectl list-timezones

1.2) Désinstallation des anciennes versions de Docker

1.3) Mise à jour du dépôt et des paquets


2) Installation de Docker

2.1) Installation des prérequis pour Docker

2.2) Ajout du nouveau dépôt officiel de Docker

2.3) Mise à jour du dépôt

2.4) Installation de la dernière version de Docker

2.5) Ajout de l’utilisateur courant au groupe docker

L’utilisateur courant pourra ainsi lancer les commandes docker sans spécifier la commande sudo.
$USER est une variable qui contient le nom de l’utilisateur courant.
Remplacer $USER par un nom d’utilisateur pour ajouter un utilisateur bien précis.
Attention : Ne rajouter que des utilisateurs de confiance dans ce groupe. (Plus d’infos : docker-daemon-attack-surface).

Source : Installation de Docker sur docs.docker.com


3) Démarrer un Container (Méthode Détaillée)

Nous utiliserons l’image hello-world pour nos exemples.
Pour démarrer un autre container à partir d’une autre image :
Il suffit de remplacer hello-container par le nom du container et hello-world par le nom de l’image.

3.1) Récupération d’une image

3.2) Création d’un container

3.3) Démarrage d’un container

-a : Afficher les sorties du container

3.4) Suppression d’un container




4) Démarrer un Container (Méthode Rapide)

Le plus souvent, le démarrage d’un container se fait par la commande docker run.
Cette commande permet de regrouper les actions pull, create et start.
Si l’image n’est pas disponible sur le système, elle sera téléchargée automatique (docker pull).
Le container sera créé (docker create) puis démarré automatiquement (docker start).

4.1) Démarrage d’un container avec docker run

4.2) Suppression du container




5) Gérer le cycle de vie d’un Container

Nous utiliserons l’image nginx pour nos exemples.
Pour un autre container à partir d’une autre image :
Il suffit de remplacer nginx-container par le nom du container et nginx par le nom de l’image.

5.1) Démarrage d’un container

-d : –detach, Démarrer le container en tâche de fond.

5.2) Mettre en pause un container

5.3) Reprendre un container

5.4) Redémarrer un container

5.5) Stopper un container

docker kill : Pour un arrêt immédiat

5.6) Suppression d’un container

docker rm -f : Pour forcer la suppression (même si le container n’est pas arrêté)




6) Persistance des modifications dans un Container

Par défaut, les modifications apportées au container sont conservées en cas d’arrêt/redémarrage de ce dernier.
Cependant, les modifications ne seront pas conservées en cas de suppression du container.


Pour démontrer la persistance des modifications dans un container, nous mettrons à disposition une page web grâce à l’image nginx.
Nous modifierons la page web par défaut.
Nous constaterons ensuite la persistance ou non des modifications après redémarrage et suppression du container.

6.1) Démarrage d’un container nginx

-d : –detach, Démarrer le container en tâche de fond

6.2) Rentrer/Se Connecter dans un Container

-it : -i -t, –interactive –tty, Vulgairement, avoir accès au container via une console

Noter la différence du prompt une fois dans le container.

6.3) Modification de la page web du site

6.4) Test de la page web

6.5) Sortie du container

6.6) Persistance après redémarrage du container

Arrêter puis Redémarrer le container docker stop nginx-container puis docker start nginx-container (ou simplement docker restart nginx-container).
Refaire les étapes 6.2, 6.4 et 6.5 (Ne pas refaire l’étape 6.3).

Le résultat n’a pas changé.

6.7) Non-Persistance après suppression/recréation du container

Supprimer puis Recréer le container docker rm -f nginx-container puis docker run -d --name nginx-container nginx
Refaire les étapes 6.2, 6.4 et 6.5.

Le résultat n’est plus le même. Les modifications effectuées précédemment ont été perdues.
Même si le container porte le même nom, il s’agit d’une toute nouvelle instance créée à partir de l’image nginx.

6.8) Suppression du container




7) Redirection de répertoires dans un Container

Il est possible de conserver les modifications après la suppression d’un container en utilisant des Volumes.

7.1) Création d’un répertoire sur l’hôte Docker

7.2) Création de la page web

7.3) Création d’un container nginx

-v /cheminSurHote:/cheminDansContainer : Mappage de répertoire

7.4) Rentrer/Se Connecter dans un Container

7.5) Test de la page web

7.6) Sortir du container

7.7) Persistance après suppression/recréation du container

Supprimer le container docker rm -f nginx-container
Refaire les étapes 7.3 à 7.6.

Le résultat n’a pas changé.


8) Redirection des ports réseaux d’un Container

Il est possible de créer des redirections de ports réseaux afin de mettre à disposition plusieurs services sur un même hôte Docker.
Dans ce paragraphe, nous mettrons à disposition 2 pages web affichant respectivement « Bonjour, Vous êtes sur Jj World 1″ et « Bonjour, Vous êtes sur Jj World 2″ l’une sur le port 8081 et l’autre sur le port 8082.

8.1) Création d’un répertoire et de la page web du site Jj World 1

8.2) Démarrage du site Jj World 1

-d : –detach, Démarrer le container en tâche de fond
–name : Nom du Container
-p : Redirection du port 8081 de l’hôte Docker vers le port 80 du Container
-v : Redirection du répertoire /demo/jjworld1/ de l’hôte Docker vers le répertoire /usr/share/nginx/html/ du Container. :ro pour que le container n’y accède qu’en lecture seul.

8.3) Idem pour le site Jj World 2

8.4) Accéder au site Jj World 1

8.5) Accéder au site Jj World 2

8.6) Suppression des containers




Voilà ! C’est terminé !

Vous pouvez enfin vous amuser avec des containers grâce à Docker.
Il ne reste plus qu’à :

  • Créer et administrer vos propres containers
  • Expérimenter la redirection de ports et de répertoires
  • Utiliser la section commentaires pour me faire part de vos remarques ou problèmes rencontrés.
  • Visiter la page de la documentation officielle pour aller encore plus loin.

1 Trackbacks & Pingbacks

  1. Kubernetes - Installation - Français - Jj World

Laisser un commentaire