GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Tutoriel Docker - Premiers pas avec Docker sous Linux

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:F08638EC7DC90065187E7EABDFAC3C96E5F  

Vous pouvez également télécharger une version spécifique de l'image Ubuntu en utilisant la commande :

$ docker pull ubuntu:18.04

Docker 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 centos

Toutes 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 $ sudo

Exemple 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.84kB

Comme 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, et 7698f282e524 est l'ID IMAGE de Ubuntu Image Docker, 9f38484d220f est l'identifiant de l'image CentOS Docker et fce289e99eb9 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/bash

Ici,

  • -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 conteneur
  • ubuntu: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 : 5B 

Cette 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 $ sudo

Exemple 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.84kB 

Comme 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 ce5aa74a48f1

Exemple de résultat :

 Untagged:ostechnix / ubuntu_apache:latestDeleted:SHA256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:SHA256:d21c926f11a64b811dc75391bbe0191b50b8fe142419f7616b3cee70229f14cd 

Dé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é dde4dd285377

En 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 ps

Exemple 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 -a

Exemple 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 12e892156219

De 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 b72889fa879c

C'est ça. Vérifiez maintenant s'il y a d'autres images Docker dans l'hôte avec la commande :

Images du menu fixe $ sudo

Vous 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

Docker
  1. Premiers pas avec btrfs pour Linux

  2. Conseils pour démarrer avec GNOME

  3. Premiers pas avec les pare-feux Linux

  4. Premiers pas avec PostgreSQL sous Linux

  5. Premiers pas avec SSH sous Linux

Tutoriel Vagrant - Premiers pas avec Vagrant sous Linux

Tutoriel Podman - Premiers pas avec Podman

Premiers pas avec Docker Compose sous Linux

Premiers pas avec VirtualBox sous Linux - Partie 1

Premiers pas avec Flutter sur Linux Desktop

Tutoriel de démarrage avec Azure Docker