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

Les commandes [Docker] les plus utiles que tout le monde devrait connaître [Exemples]

Ce didacticiel poursuit la série d'articles liés à Docker et couvre les commandes Docker les plus souvent utilisées. Nous commençons par un bref aperçu de Docker, puis passons à l'installation de Docker sur votre serveur. Ensuite, nous vous expliquerons toutes les commandes requises pour gérer les conteneurs, les images et les volumes Docker. Devenez un utilisateur professionnel de Docker en suivant ce guide en 10 minutes.

Qu'est-ce que Docker

Docker est une plate-forme ouverte pour le développement, la livraison et l'exécution d'applications. Il s'agit de la norme de facto pour l'empaquetage et le partage d'applications, du bureau au cloud.

Pour atteindre son objectif, Docker utilise des conteneurs.

Le conteneur a les caractéristiques suivantes :

  • Un conteneur est un package pour le logiciel et toutes les bibliothèques requises.
  • Dès son lancement, un conteneur détermine un environnement d'exécution pour votre application.
  • Un conteneur est plus léger qu'une machine virtuelle, il peut donc être lancé beaucoup plus rapidement.
  • Un conteneur est distribué sous la forme d'une image composée de plusieurs couches. Plusieurs conteneurs peuvent réutiliser ces couches.

Les fonctionnalités ci-dessus vous permettent :

  • Créez des environnements isolés pour le déploiement.
  • Lancez vos applications en quelques minutes.

Docker vous aide à simplifier et à automatiser chaque étape du processus de développement logiciel.

Voici les fonctionnalités essentielles de Docker :

  • Docker a une communauté géante.
  • Docker est un moyen simple et léger de distribuer des logiciels.
  • Docker dispose d'un référentiel public géant de conteneurs à toutes fins possibles.
  • Docker réduit les coûts de développement et d'exploitation.
  • La configuration de Docker est simple et rapide.
  • Docker permet d'isoler les applications.
  • L'image Docker a des calques, qui ont un contrôle de version.
  • Docker automatise chaque étape de la gestion des conteneurs.

Vous pouvez installer Docker sur les systèmes d'exploitation Linux, macOS et Windows.

Installer Docker

Cette section décrit comment installer le package Docker CE (édition communautaire) sur le système d'exploitation Linux.

Si vous utilisez le cloud AWS, je vous suggère un article sur l'installation automatique de Docker sur l'instance EC2 à l'aide de CloudFormation.

Installer Docker sur Ubuntu/Debian

Par défaut, le référentiel par défaut d'Ubuntu ou de Debian ne contient pas la dernière version du package Docker CE. Vous devrez donc ajouter le référentiel officiel Docker CE à votre système.

Avant d'ajouter le référentiel, installez certaines dépendances requises en exécutant la commande suivante :

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

Après avoir installé toutes les dépendances, importez la clé Docker GPG à l'aide de la commande suivante :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

Ensuite, ajoutez le référentiel officiel Docker CE au fichier source APT avec la commande suivante :

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"

Une fois le référentiel ajouté, vous devrez mettre à jour le cache du référentiel. Vous pouvez le mettre à jour avec la commande suivante :

apt-get update -y

Une fois votre référentiel à jour, exécutez la commande suivante pour installer la dernière version de Docker CE sur votre système.

apt-get install docker-ce -y

La commande ci-dessus installera le package Docker CE sur votre système et démarrera le service automatiquement.

Vous pouvez vérifier la version installée de Docker CE en exécutant la commande suivante :

docker --version

Vous devriez voir la version de Docker dans la sortie suivante :

Docker version 19.03.13, build 4484c46d9d

Si vous souhaitez supprimer le package Docker de votre système, exécutez la commande suivante :

apt-get remove docker-ce

Installer Docker sur CentOS/RHEL

Pour le système d'exploitation CentOS ou RHEL, vous devrez installer le dépôt Docker CE sur votre système. Vous pouvez utiliser la commande DNF pour ajouter et activer le référentiel Docker CE comme indiqué ci-dessous :

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Une fois le référentiel Docker CE ajouté, vous pouvez répertorier toutes les versions disponibles de Docker CE en exécutant la commande suivante :

dnf list docker-ce --showduplicates | sort -r

Vous devriez obtenir la liste complète dans le résultat suivant :

docker-ce.x86_64                3:19.03.13-3.el8                docker-ce-stable
Docker CE Stable - x86_64                        54 kB/s | 3.8 kB     00:00
CentOS-8 - Extras                                14 kB/s | 8.1 kB     00:00
CentOS-8 - Base                                 4.6 MB/s | 2.2 MB     00:00
CentOS-8 - AppStream                            4.7 MB/s | 5.8 MB     00:01
Available Packages

Ensuite, installez la dernière version de Docker CE en exécutant la commande suivante :

dnf install docker-ce --nobest

Une fois le Docker installé, vérifiez la version installée avec la commande suivante :

docker --version

Vous devriez obtenir le résultat suivant :

Docker version 19.03.13, build 4484c46d9d

Pour démarrer le service Docker, exécutez la commande suivante :

systemctl start docker

Pour arrêter le service Docker, exécutez la commande suivante :

systemctl stop docker

Vous pouvez également exécuter la commande suivante pour afficher plus d'informations sur Docker :

docker info

Vous devriez voir le résultat suivant :

Si vous souhaitez supprimer le package Docker de votre système, exécutez la commande suivante :

dnf remove docker-ce

Gestion des conteneurs avec Docker

Le docker container La commande est utilisée pour gérer le cycle de vie du conteneur. Si vous n'avez pas l'image à partir de laquelle exécuter le conteneur, le Docker ira dans le registre, téléchargez-le.

Exécuter le conteneur Docker

Utilisez la syntaxe suivante pour télécharger l'image à partir du registre Docker et créer un conteneur.

docker container run [your-image-name]

Par exemple, exécutez la commande suivante pour créer un conteneur de serveur Web Apache :

docker container run httpd

Vous devriez obtenir le résultat suivant :

Vous pouvez utiliser l'option --rm avec la commande Docker run pour supprimer un conteneur après sa sortie.

docker container run --rm httpd

Se connecter à Docker Container Shell

Vous pouvez utiliser l'option -it avec la commande Docker run pour créer et démarrer le conteneur Apache et l'attacher au shell bash interactif.

docker container run -it httpd /bin/bash

Vous devriez obtenir le résultat suivant :

Lancer le conteneur Docker en arrière-plan

Vous pouvez maintenant exécuter n'importe quelle commande à l'intérieur du conteneur.

Vous pouvez utiliser l'option -td avec la commande Docker run pour créer et démarrer le conteneur Apache et le faire fonctionner.

docker container run -td httpd

Vous devriez obtenir le résultat suivant :

Configurer le nom du conteneur Docker

Vous pouvez utiliser l'option --name avec la commande Docker run pour attribuer un nom de conteneur en utilisant la syntaxe suivante :

docker container run --name [container-name] -td [image-name]

Par exemple, créez un nouveau conteneur à partir de l'image Apache et attribuez-lui un nom apacheweb avec la commande suivante :

docker container run --name apacheweb -td httpd

Lier le conteneur Docker sur le port spécifique

Si vous souhaitez accéder au processus de conteneur de la machine externe, vous pouvez exposer un port de conteneur au réseau externe.

Dans ce cas, vous pouvez utiliser l'option -p avec la commande Docker pour exposer le port spécifique comme indiqué ci-dessous :

docker container run -p [host-port]:[container-port] --name [container-name] -dit [image-name]

Par exemple, créez un conteneur de serveur Web apache et exposez le port de conteneur 80 au port 8080 avec la commande suivante :

docker container run -p 8080:80 --name apacheweb -dt httpd

Vous pouvez désormais accéder au serveur Web apache exécuté dans le conteneur à l'aide de l'URL http://localhost:8080 .

Répertorier tous les conteneurs Docker

Pour répertorier tous les conteneurs en cours d'exécution et arrêtés dans votre système, exécutez la commande suivante :

docker ps -a

Vous devriez voir tous les conteneurs dans la sortie suivante :

Pour répertorier uniquement les conteneurs en cours d'exécution sur votre système, exécutez la commande suivante :

docker ps

Vous pouvez également lister le conteneur avec la commande suivante :

docker container ls

Afficher les statistiques du conteneur Docker

Pour afficher les statistiques en direct du conteneur en cours d'exécution (utilisation du processeur et de la mémoire, E/S réseau et disque) nommé apacheweb , exécutez la commande suivante :

docker stats apacheweb

Vous devriez voir le résultat suivant :

Afficher tous les processus du conteneur Docker

Pour répertorier tous les processus en cours d'exécution dans le conteneur en cours d'exécution nommé apacheweb , exécutez la commande suivante :

docker top apacheweb

Vous devriez voir le résultat suivant :

Afficher les journaux du conteneur Docker

Pour afficher les journaux du conteneur en cours d'exécution nommé apacheweb , exécutez la commande suivante :

docker logs apacheweb

Vous devriez voir le résultat suivant :

Démarrer, arrêter et suspendre le conteneur Docker

Pour arrêter le conteneur en cours d'exécution nommé apacheweb , exécutez la commande suivante :

docker container stop apacheweb

Pour démarrer le conteneur nommé apacheweb , exécutez la commande suivante :

docker container start apacheweb

Pour mettre en pause le conteneur nommé apacheweb , exécutez la commande suivante :

docker container pause apacheweb

Redémarrer ou tuer le conteneur Docker

Pour redémarrer le conteneur en cours d'exécution nommé apacheweb , exécutez la commande suivante :

docker container restart apacheweb

Pour tuer le conteneur en cours d'exécution nommé apacheweb , exécutez la commande suivante :

docker container kill apacheweb

Attacher à un conteneur Docker déjà en cours d'exécution

Pour vous connecter au conteneur en cours d'exécution, exécutez la commande suivante :

docker container exec -it apacheweb /bin/bash

Pour exécuter n'importe quelle commande dans le conteneur en cours d'exécution, exécutez la commande suivante :

docker container exec -it apacheweb ls

Gestion des images Docker

Dans cette section, nous allons vous montrer quelques commandes les plus couramment utilisées pour gérer l'image Docker.

Télécharger l'image Docker à partir du registre

Pour télécharger ou extraire l'image du registre Docker, utilisez la syntaxe suivante :

docker pull [image-name]

Par exemple, vous pouvez extraire l'image du serveur Web Nginx du registre Docker avec la commande suivante :

docker pull nginx

Vous devriez obtenir le résultat suivant :

Télécharger l'image Docker dans le registre

Si vous souhaitez télécharger une image existante dans le registre Docker, utilisez la syntaxe suivante :

docker push [image-name]

Connectez-vous à Docker The Registry

Tout d'abord, vous devrez vous connecter au registre Docker avec la commande suivante :

docker login

Une fois connecté, exécutez la commande suivante pour obtenir l'identifiant de l'image Nginx et marquez l'image avec la commande suivante :

docker images

Sortie :

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f35646e83998        3 weeks ago         133MB
httpd               latest              3dd970e6b110        3 weeks ago         138MB

Ajouter une balise à l'image Docker

Ensuite, taguez l'image avec la commande suivante :

docker tag f35646e83998 amaksimov/nginx

Où :

  • f35646e83998 est l'identifiant de l'image, amaksimov est le nom du registre Docker et nginx est le nom de l'image.

Ensuite, poussez l'image Nginx vers le registre Docker avec la commande suivante :

docker push amaksimov/nginx

Vous devriez voir le résultat suivant :

Créer une image Docker à partir du conteneur en cours d'exécution

Vous pouvez également créer une image à partir d'un conteneur existant en utilisant la syntaxe suivante :

docker commit [container-name] [new-image-name]

Par exemple, créez une image à partir du conteneur Apache, exécutez la commande suivante :

docker commit apacheweb apache-image

Pour enregistrer votre image existante dans l'archive tar en exécutant la commande suivante :

docker save apache-image > apache-image.tar

Histoire de l'image Docker

Vous pouvez imprimer l'historique de n'importe quelle image Docker avec la commande suivante :

docker history apache-image

Vous devriez obtenir le résultat suivant :

Supprimer l'image Docker

Vous pouvez supprimer n'importe quelle image Docker en utilisant la syntaxe suivante :

docker rmi [image-name]

Par exemple, si vous souhaitez supprimer l'image Apache, vous devrez arrêter le conteneur qui utilise le httpd image :

docker container stop apacheweb
docker rm apacheweb

Tout d'abord, nous devons supprimer apache-image image :

docker rmi apache-image

Ce n'est qu'après que nous supprimons le httpd image avec la commande suivante :

docker rmi httpd

Au fil du temps, les images et les conteneurs créés manuellement peuvent apporter des dégâts à votre serveur. Veuillez consulter notre FAQ Docker pour savoir comment tout nettoyer.

Gestion des volumes Docker

Lorsque vous créez un nouveau conteneur, stockez des données et supprimez le conteneur, les données seront perdues. Dans ce cas, vous pouvez créer un volume sur le système hôte et démarrer un conteneur à l'aide de ce volume. Après avoir supprimé le conteneur, vous pouvez récupérer les données du volume. Vous pouvez également utiliser le volume Docker pour partager les données entre plusieurs conteneurs.

Dans cette section, nous utiliserons le plus souvent docker volume commandes avec des exemples.

Créer un volume Docker

Pour créer un nouveau volume nommé datavolume avec la commande suivante :

docker volume create datavolume

Répertorier tous les volumes Docker

Pour répertorier votre volume créé, exécutez la commande suivante :

docker volume ls

Vous devriez voir le résultat suivant :

Pour imprimer plus d'informations sur le volume, exécutez la commande suivante :

docker inspect datavolume

Vous devriez voir le résultat suivant :

Monter le volume sur le conteneur Docker

Pour créer un nouveau conteneur nommé apacheweb et monter le volume de données sur le système hôte dans le répertoire /mnt du conteneur, exécutez la commande suivante :

docker run -it --name apacheweb1  --mount source=datavolume,destination=/mnt -td httpd

Volume Docker distant

Pour supprimer le volume, exécutez la commande suivante :

docker volume rm datavolume

FAQ Docker

Comment supprimer les images Docker inutilisées

Pour supprimer toutes les images Docker inutilisées, vous devez exécuter la commande suivante :

docker rmi $(docker images -a -q)

Comment supprimer tous les conteneurs Docker abandonnés

Tous les conteneurs Docker abandonnés peuvent être supprimés en exécutant la commande suivante :

docker rm $(docker ps -a -f status=exited -q)

Comment arrêter et supprimer tous les conteneurs Docker

Pour arrêter tous les conteneurs Docker, vous devez exécuter :

docker stop $(docker ps -a -q)

Pour supprimer tous les conteneurs Docker arrêtés, vous devez exécuter :

docker rm $(docker ps -a -q)

Comment supprimer toutes les images, conteneurs, volumes et réseaux Docker inutilisés

Pour supprimer toutes les ressources Docker inutilisées, vous pouvez utiliser la commande suivante :

docker system prune

Pour supprimer complètement toutes les ressources Docker (utilisées et inutilisées), exécutez la commande suivante :

docker system prune -a

Résumé

Dans le guide ci-dessus, vous avez découvert les commandes Docker les plus couramment utilisées et leur utilisation avec des exemples. J'espère que cela vous aidera à effectuer les tâches quotidiennes.


Docker
  1. 30 choses que vous ne saviez pas sur le noyau Linux

  2. 10 commandes que tout utilisateur de Linux devrait connaître

  3. Quelques commandes DOCKER

  4. Commandes Nginx les plus utiles dans le système Linux

  5. 10 commandes Ubuntu Linux les plus utiles

Alternatives Kubernetes aux commandes Docker

Tout ce que vous devez savoir sur l'utilisation de Docker Compose

21 commandes essentielles que tout utilisateur de Docker devrait connaître

Les 50 commandes Linux les plus utiles à exécuter dans le terminal

Les 50 commandes Zypper les plus utiles pour les utilisateurs de SUSE Linux

Commandes Bash utiles que vous ne connaissez peut-être pas