Ce didacticiel Docker détaillé couvre les bases de la commande Docker, telles que la création d'un nouveau conteneur, l'exécution du conteneur, la suppression d'un conteneur, la création de votre propre image Docker à partir du conteneur, etc. Commençons !
Si vous n'avez pas encore installé Docker, consultez les guides suivants :
- Comment installer Docker dans CentOS
- Comment installer Docker dans Ubuntu
Démarrer avec Docker sous Linux
Toutes les étapes ci-dessous sont testées dans l'édition serveur Ubuntu 18.04 LTS.
Avant de commencer avec Docker, permettez-moi de clarifier ce qu'est une image Docker et un conteneur Docker.
Une image Docker est le fichier qui décide du comportement d'un conteneur, et le conteneur Docker est l'étape en cours d'exécution ou arrêtée d'une image Docker.
Les conteneurs sont isolés du reste des fichiers de l'hôte.
Lorsque nous exécutons un conteneur Docker, il utilise un système de fichiers isolé fourni par une image Docker. L'image Docker comprend tout ce qui est nécessaire pour exécuter une application - toutes les dépendances, la configuration, les scripts, les binaires, etc.
L'image contient également d'autres configurations pour le conteneur, telles que des variables d'environnement, une commande par défaut à exécuter et d'autres métadonnées.
1. Rechercher des images Docker
Nous pouvons obtenir les images à partir du registre, par exemple Docker hub , ou créer le nôtre, Pour ceux qui se demandent, Docker hub est un référentiel central en ligne où tous les utilisateurs de Docker créent, testent et enregistrent leurs images Docker.
Le hub Docker contient des dizaines de milliers d'images Docker. Vous pouvez rechercher n'importe quelle image Docker avec "docker search"
commande.
Par exemple, pour rechercher des images Docker basées sur Ubuntu, exécutez :
$ sudo docker recherche ubuntu
Exemple de résultat :
Pour rechercher des images basées sur CentOS, exécutez :
$ sudo docker recherche ubuntu
Pour rechercher des images pour AWS, exécutez :
$ sudo docker search aws
Pour wordpress :
$ sudo docker recherche wordpress
Le hub Docker contient presque tous les types d'images. Qu'il s'agisse d'un système d'exploitation, d'une application ou de quoi que ce soit, vous trouverez des images Docker prédéfinies dans le hub Docker.
Si quelque chose que vous recherchez n'est pas disponible, vous pouvez le créer et le rendre public ou le garder privé pour votre propre usage.
2. Télécharger l'image Docker
Pour télécharger l'image Docker pour le système d'exploitation Ubuntu, exécutez la commande suivante depuis le terminal :
$ sudo docker pull ubuntu
La commande ci-dessus téléchargera la dernière image Ubuntu à partir du hub Docker .
Exemple de résultat :
Utilisation de la balise par défaut:DermorLaSest:tirage de la bibliothèque / ubuntu6abc03819f3e:Pull complet 05731E63F211:Pull complet 0BD67C50D6BE:Pull Complete Digest:Sha256:F08638EC7DC90065187E7EABDFAC3C96E5FVous pouvez également télécharger une version spécifique de l'image Ubuntu en utilisant la commande :
$ docker pull ubuntu:18.04Docker nous permet de télécharger n'importe quelle image et de démarrer le conteneur quel que soit le système d'exploitation hôte.
Par exemple, pour télécharger l'image CentOS, exécutez :
$ sudo docker pull centosToutes les images Docker téléchargées seront enregistrées dans
/var/lib/docker/
répertoire.Pour afficher la liste des images Docker téléchargées, exécutez :
Images du menu fixe $ sudoExemple de résultat :
REPOSITORY TAG IMAGE ID CREATED SIZEubuntu dernier 7698f282e524 il y a 14 heures 69.9MBcentos dernier 9f38484d220f il y a 2 mois 202MBhello-world dernier fce289e99eb9 il y a 4 mois 1.84kBComme vous le voyez ci-dessus, j'ai téléchargé trois images Docker - Ubuntu , CentOS et hello-world .
Maintenant, allons-y et voyons comment démarrer ou exécuter les conteneurs en fonction des images téléchargées.
3. Exécuter des conteneurs Docker
Nous pouvons démarrer un conteneur de deux manières - soit en utilisant son TAG ou ID D'IMAGE .
TAG fait référence à un instantané particulier de l'image et à l'ID D'IMAGE est l'identifiant unique correspondant à cette image.
Comme vous dans les résultats ci-dessus
"latest"
est le TAG pour tous les conteneurs, et7698f282e524
est l'ID IMAGE de Ubuntu Image Docker,9f38484d220f
est l'identifiant de l'image CentOS Docker etfce289e99eb9
est l'identifiant de l'image de hello_world Image Docker.Une fois que vous avez téléchargé les images Docker de votre choix, exécutez la commande suivante pour démarrer un conteneur Docker en utilisant son TAG.
$ sudo docker run -t -i ubuntu:latest /bin/bashIci,
-t
:Attribue un nouveau pseudo-terminal dans le conteneur Ubuntu.-i
: nous permet d'établir une connexion interactive en saisissant l'entrée standard (STDIN) du conteneur.ubuntu:latest
:Conteneur Ubuntu avec TAG "latest"./bin/bash
:shell BASH pour le nouveau conteneur.
Ou, vous pouvez démarrer le conteneur en utilisant IMAGE ID comme indiqué ci-dessous :
$ sudo docker run -t -i 7698f282e524 /bin/bash
Ici,
- 7698f282e524 - Identifiant de l'image
Après avoir démarré le conteneur, vous serez automatiquement redirigé vers le shell du conteneur (invite de commande) :
Pour revenir au terminal du système hôte (dans mon cas, il s'agit d'Ubuntu 18.04 LTS) sans terminer le conteneur (système d'exploitation invité), appuyez sur CTRL+P
suivi de CTRL+Q
.
Maintenant, vous reviendrez en toute sécurité à la fenêtre de terminal de votre ordinateur hôte d'origine. Veuillez noter que le conteneur fonctionne toujours en arrière-plan et que nous ne l'avons pas encore arrêté.
Pour afficher la liste des conteneurs en cours d'exécution, exécutez la commande suivante :
$ sudo docker ps
Exemple de résultat :
CONTAINER ID IMAGE COMMAND CREE STATUT PORTS NAMES32fc32ad0d54 ubuntu:latest "/bin/bash" Il y a 7 minutes Jusqu'à 7 minutes modest_jones
Ici,
32fc32ad0d54
- Identifiant du conteneurubuntu:latest
- Image Docker
Veuillez noter que l'ID de conteneur et l'ID d'image Docker sont différents .
Pour répertorier tous les conteneurs disponibles (en cours d'exécution ou arrêtés), exécutez :
$ sudo docker ps -a
Pour arrêter (éteindre le conteneur) depuis le shell de l'hôte, exécutez la commande suivante :
$ sudo docker stop
Exemple :
$ sudo docker stop 32fc32ad0d54
Pour vous reconnecter ou vous connecter au conteneur en cours d'exécution, exécutez simplement :
$ sudo docker attach 32fc32ad0d54
Comme vous le savez déjà, 32fc32ad0d54
est l'ID du conteneur.
Pour éteindre un conteneur depuis son shell en tapant la commande suivante :
# sortie
Vous pouvez vérifier la liste des conteneurs en cours d'exécution avec la commande :
$ sudo docker ps
4. Créez vos images Docker personnalisées
Docker ne se limite pas au téléchargement et à l'utilisation des conteneurs existants. Vous pouvez également créer votre propre image docker personnalisée.
Pour cela, démarrez un conteneur :
$ sudo docker run -t -i ubuntu:latest /bin/bash
Maintenant, vous serez dans la coque du conteneur.
Ensuite, installez n'importe quel logiciel ou faites ce que vous voulez faire dans le conteneur.
Par exemple, installons le serveur Web Apache dans le conteneur.
# apt update# apt install apache2
De même, installez et testez tout logiciel de votre choix dans le conteneur.
Une fois que vous avez tout défini, revenez au shell du système hôte. N'arrêtez pas et n'éteignez pas le conteneur. Pour passer au shell du système hôte sans arrêter Container, appuyez sur CTRL+P
suivi de CTRL+Q
.
Depuis le shell de votre ordinateur hôte, exécutez la commande suivante pour trouver l'ID du conteneur :
$ sudo docker ps
Enfin, créez une image Docker du conteneur en cours d'exécution à l'aide de la commande :
$ sudo docker commit 3d24b3de0bfc ostechnix/ubuntu_apache
Exemple de sortie :
sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962
Ici,
3d24b3de0bfc
– ID de conteneur Ubuntu.ostechnix
– Nom de l'utilisateur qui a créé le conteneur.ubuntu_apache
– Nom de l'image docker créée par l'utilisateur ostechnix.
Vérifions si la nouvelle image Docker est créée ou non avec la commande :
Images du menu fixe $ sudo
Exemple de résultat :
REPOSITORY TAG IMAGE ID CREATED SIZEostechnix/ubuntu_apache latest ce5aa74a48f1 Il y a environ une minute 191MB ubuntu dernier 7698f282e524 il y a 15 heures 69.9MBcentos dernier 9f38484d220f il y a 2 mois 202MBhello-world dernier fce289e99eb9 il y a 4 mois 1.84kB
Comme vous le voyez dans la sortie ci-dessus, la nouvelle image Docker a été créée dans notre système localhost à partir du conteneur en cours d'exécution.
Maintenant, vous pouvez créer un nouveau conteneur à partir de l'image Docker nouvellement créée comme d'habitude avec la commande :
$ sudo docker run -t -i ostechnix/ubuntu_apache /bin/bash
5. Retrait des conteneurs
Une fois que vous avez terminé toute la R&D avec les conteneurs Docker, vous pouvez les supprimer si vous n'en voulez plus.
Pour ce faire, nous devons d'abord arrêter (éteindre) les conteneurs en cours d'exécution.
Découvrons les conteneurs en cours d'exécution avec la commande :
$ sudo docker ps
Exemple de résultat :
ID DE CONTENEUR IMAGE COMMANDE ÉTAT CRÉÉ NOMS DES PORTS3d24b3de0bfc ubuntu:latest "/bin/bash" Il y a 28 minutes Jusqu'à 28 minutes goofy_easley
Arrêtez le conteneur en cours d'exécution en utilisant son ID :
$ arrêt docker sudo 3d24b3de0bfc
Maintenant, supprimez le conteneur à l'aide de la commande :
$ sudo docker rm 3d24b3de0bfc
De même, arrêtez tous les conteneurs et supprimez-les s'ils ne sont plus nécessaires.
Supprimer plusieurs conteneurs un par un peut être une tâche fastidieuse. Ainsi, nous pouvons supprimer tous les conteneurs arrêtés en une seule fois, il suffit de lancer :
pruneau du conteneur $ sudo docker
Tapez "Y"
et appuyez sur ENTER
clé pour supprimer les conteneurs.
ATTENTION ! Cette opération supprimera tous les conteneurs arrêtés.Voulez-vous vraiment continuer ? [o/N] o Conteneurs supprimés :32fc32ad0d5445f2dfd0d46121251c7b5a2aea06bb22588fb2594ddbe46e65645ec614e0302061469ece212f0dba303c8fe99889389749e6220fe891997f38d0Espace récupéré total : 5BCette commande ne fonctionnera qu'avec les dernières versions de Docker.
6. Suppression d'images Docker
Une fois les conteneurs supprimés, vous pouvez supprimer les images Docker dont vous n'avez plus besoin.
Pour trouver la liste des images Docker téléchargées :
Images du menu fixe $ sudoExemple de résultat :
REPOSITORY TAG IMAGE ID CREATED SIZEostechnix/ubuntu_apache dernier ce5aa74a48f1 il y a 5 minutes 191MBubuntu dernier 7698f282e524 il y a 15 heures 69.9MBcentos dernier 9f38484d220f il y a 2 mois 202MBhello-world dernier fce289e99ebpre9 il y a 4 mois> 1.84kBComme vous le voyez ci-dessus, nous avons trois images Docker dans notre système hôte.
Supprimons-les en utilisant leur identifiant IMAGE :
$ sudo docker rmi ce5aa74a48f1Exemple de résultat :
Untagged:ostechnix / ubuntu_apache:latestDeleted:SHA256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:SHA256:d21c926f11a64b811dc75391bbe0191b50b8fe142419f7616b3cee70229f14cdDépannage
Docker ne vous permettra pas de supprimer les images Docker si elles sont utilisées par des conteneurs en cours d'exécution ou arrêtés.
Par exemple, lorsque j'essaie de supprimer une image Docker avec l'ID
b72889fa879c
, à partir d'un de mes anciens serveurs Ubuntu. J'ai l'erreur suivante :Réponse d'erreur du démon :conflit :impossible de supprimer b72889fa879c (doit être forcé) - l'image est utilisée par le conteneur arrêté dde4dd285377En effet, l'image Docker que vous souhaitez supprimer est actuellement utilisée par un autre conteneur.
Alors, vérifions le conteneur en cours d'exécution à l'aide de la commande :
$ sudo docker psExemple de résultat :
Oups! Il n'y a pas de conteneur en cours d'exécution.
Vérifions à nouveau tous les conteneurs (en cours d'exécution et arrêtés) avec la commande :
$ sudo docker ps -aExemple de résultat :
Comme vous le voyez, certains conteneurs arrêtés utilisent encore l'une des images Docker. Alors, supprimons tous les conteneurs.
Exemple :
$ sudo docker rm 12e892156219De même, supprimez tous les conteneurs comme indiqué ci-dessus en utilisant l'ID de leur conteneur respectif.
Une fois que vous avez supprimé tous les conteneurs, supprimez enfin les images Docker.
Exemple :
$ sudo docker rmi b72889fa879cC'est ça. Vérifiez maintenant s'il y a d'autres images Docker dans l'hôte avec la commande :
Images du menu fixe $ sudoVous ne verrez probablement plus aucune image Docker.
Lire ensuite :
- Expliquer les concepts de mise en réseau Docker
- Expliquer les volumes Docker avec des exemples
- Une brève introduction à Dockerfile
- Premiers pas avec Docker Compose sous Linux
- Comment exécuter Docker en tant qu'utilisateur non root sous Linux
- Tutoriel Podman – Premiers pas avec Podman
Conclusion
Dans ce didacticiel complet de démarrage avec Docker, nous avons expliqué les bases de Docker telles que la création, l'exécution, la recherche, la suppression de conteneurs et également la création de sa propre image Docker à partir du conteneur.
J'espère que vous avez compris l'idée de base de l'utilisation de Docker.
Pour plus de détails, reportez-vous aux liens de ressources officiels indiqués à la fin de ce guide ou déposez un commentaire dans la section des commentaires ci-dessous.
Télécharger des ebooks Docker gratuits :
Download - Free eBook: "Docker Containerization Cookbook"
Download - Free Guide: "Understanding Docker"
Download - Free Guide: "What is Docker and Why is it So Popular?"
Download - Free Guide: "Introduction to Docker"
Download - Free Guide: "Docker in Production"
Suggestion de lecture :
- Comment mettre à jour automatiquement les conteneurs Docker en cours d'exécution
- ctop – Un outil de surveillance en ligne de commande pour les conteneurs Linux
- Portainer – Le moyen le plus simple de gérer Docker
- PiCluster :une application Web simple de gestion Docker
- Dockly – Gérer les conteneurs Docker depuis le terminal