Dans cette série de 4 articles, nous discuterons de Docker, qui est un outil de virtualisation léger et open-source qui fonctionne au plus haut niveau du système d’exploitation, permettant aux utilisateurs de créer, d’exécuter et de déployer des applications, encapsulées dans de petits conteneurs.
Ce type de conteneurs Linux s’est avéré rapide, portable et sécurisé. Les processus qui s’exécutent dans un conteneur Docker sont toujours isolés de l’hôte principal, ce qui empêche toute altération extérieure.
Ce tutoriel fournit un point de départ sur la façon d’installer Docker, de créer et d’exécuter des conteneurs Docker sur CentOS / RHEL 8/7, mais gratte à peine la surface de Docker.
Étape 1: Installez et configurez Docker
1. Les versions antérieures de Docker s’appelaient docker ou docker-engine, si vous les avez installées, vous devez les désinstaller avant d’installer une version docker-ce plus récente.
# yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2. Pour installer la dernière version du moteur Docker, vous devez configurer le référentiel Docker et installer le package yum-utils pour activer le référentiel stable Docker sur le système.
# yum install -y yum-utils# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3. Installez maintenant la nouvelle version de docker-ce à partir du référentiel Docker et de containerd manuellement, car en raison de certains problèmes, Red Hat a bloqué l’installation de containerd.io > 1.2.0-3.el7
, qui est une dépendance de docker-ce.
# yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm# yum install docker-ce docker-ce-cli
4. Une fois le paquet Docker installé, démarrez le démon, vérifiez son état et activez-le à l’échelle du système en utilisant les commandes ci-dessous :
# systemctl start docker # systemctl status docker# systemctl enable docker
5. Enfin, exécutez une image de test de conteneur pour vérifier si Docker fonctionne correctement, en émettant la commande suivante:
# docker run hello-world
Si vous pouvez voir le message ci-dessous, tout est au bon endroit.
Sortie d’échantillon
Hello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For more examples and ideas, visit: https://docs.docker.com/get-started/
6. Maintenant, vous pouvez exécuter quelques commandes Docker de base pour obtenir des informations sur Docker:
For system-wide information on Docker
# docker info
For Docker version
# docker version
7. To get a list of all available Docker commands type docker on your console.
# docker
Étape 2: Télécharger une image Docker
8. Pour démarrer et exécuter un conteneur Docker, une image doit d’abord être téléchargée à partir de Docker Hub sur votre hôte. Docker Hub propose de nombreuses images gratuites à partir de ses dépôts.
Pour rechercher une image Docker, Ubuntu, par exemple, émet la commande suivante:
# docker search ubuntu
9. Une fois que vous avez décidé de l’image que vous souhaitez exécuter en fonction de vos besoins, téléchargez-la localement en exécutant la commande ci-dessous (dans ce cas, une image Ubuntu est téléchargée et utilisée):
# docker pull ubuntu
. Pour lister toutes les images Docker disponibles sur votre hôte, émettez la commande suivante :
# docker images
11. Si vous n’avez plus besoin d’une image Docker et que vous souhaitez la supprimer de l’hôte, émettez la commande suivante :
# docker rmi ubuntu
Étape 3: Exécutez un conteneur Docker
Lorsque vous exécutez une commande sur une image, vous obtenez essentiellement un conteneur. Une fois la commande en cours d’exécution dans le conteneur terminée, le conteneur s’arrête (vous obtenez un conteneur non en cours d’exécution ou terminé). Si vous exécutez à nouveau une autre commande dans la même image, un nouveau conteneur est créé, etc.
Tous les conteneurs créés resteront sur le système de fichiers hôte jusqu’à ce que vous choisissiez de les supprimer en utilisant la commande docker rm
.
12. Pour créer et exécuter un conteneur, vous devez exécuter une commande dans une image téléchargée, dans ce cas, Ubuntu, donc une commande de base consisterait à afficher le fichier de version de distribution à l’intérieur du conteneur à l’aide de la commande cat, comme dans l’exemple suivant:
# docker run ubuntu cat /etc/issue
La commande ci-dessus est divisée comme suit :
# docker run
13. Pour exécuter à nouveau l’un des conteneurs avec la commande qui a été exécutée pour le créer, vous devez d’abord obtenir l’ID du conteneur (ou le nom généré automatiquement par Docker) en émettant la commande ci-dessous, qui affiche une liste des conteneurs en cours d’exécution et arrêtés (non en cours d’exécution) :
# docker ps -l
14. Une fois l’ID du conteneur obtenu, vous pouvez redémarrer le conteneur avec la commande qui a été utilisée pour le créer, en émettant la commande suivante :
# docker start 923a720da57f
Ici, la chaîne 923a720da57f
représente l’ID du conteneur.
15. Dans le cas où le conteneur est en cours d’exécution, vous pouvez obtenir son ID en émettant la commande docker ps
. Pour arrêter le problème de conteneur en cours d’exécution, la commande docker stop
en spécifiant l’ID du conteneur ou le nom généré automatiquement.
# docker stop 923a720da57fOR# docker stop cool_lalande# docker ps
16. Une alternative plus élégante pour que vous n’ayez pas à vous souvenir de l’ID du conteneur serait d’allouer un nom unique pour chaque conteneur que vous créez en utilisant l’option --name
sur la ligne de commande, comme dans l’exemple suivant:
# docker run --name ubuntu20.04 ubuntu cat /etc/issue
17. Ensuite, en utilisant le nom que vous avez alloué pour le conteneur, vous pouvez manipuler le conteneur (start, stop, remove, top, stats) simplement en adressant son nom, comme dans les exemples ci-dessous:
# docker start ubuntu20.04# docker stats ubuntu20.04# docker top ubuntu20.04
Sachez que certaines des commandes ci-dessus peuvent ne pas afficher de sortie si le processus de commande utilisé pour créer le conteneur se termine. Lorsque le processus qui s’exécute à l’intérieur du conteneur se termine, le conteneur s’arrête.
Étape 4: Exécutez une session interactive dans un conteneur
18. Afin de se connecter de manière interactive à une session shell de conteneur et d’exécuter des commandes comme vous le faites sur toute autre session Linux, exécutez la commande suivante :
# docker run -it ubuntu bash
La commande ci-dessus est divisée comme suit:
-
-i
est utilisé pour démarrer une session interactive. -
-t
alloue un ATS et attache stdin et stdout. -
ubuntu
est l’image que nous avons utilisée pour créer le conteneur. -
bash
(ou /bin/bash) est la commande que nous exécutons dans le conteneur Ubuntu.
19. Pour quitter et revenir à l’hôte à partir de la session de conteneur en cours d’exécution, vous devez taper la commande exit
. La commande exit termine tous les processus du conteneur et l’arrête.
# exit
20. Si vous êtes connecté de manière interactive à l’invite du terminal conteneur et que vous devez garder le conteneur en état d’exécution mais quitter la session interactive, vous pouvez quitter la console et revenir au terminal hôte en appuyant sur les touches Ctrl+p
et Ctrl+q
.
21. Pour vous reconnecter au conteneur en cours d’exécution, vous avez besoin de l’ID ou du nom du conteneur. Émettez la commande docker ps
pour obtenir l’ID ou le nom, puis exécutez la commande docker attach
en spécifiant l’ID ou le nom du conteneur, comme illustré dans l’image ci-dessus :
# docker attach <container id>
22. Pour arrêter un conteneur en cours d’exécution à partir de la session hôte, exécutez la commande suivante :
# docker kill <container id>
C’est tout pour la manipulation de base du conteneur. Dans le didacticiel suivant, nous discuterons de la façon d’enregistrer, de supprimer et d’exécuter un serveur Web dans un conteneur Docker.