Le conteneur Docker est l'une des technologies les plus émergentes de nos jours. Les conteneurs Docker sont généralement utilisés dans la plate-forme CI/CD (intégration continue/déploiement continu). Les conteneurs sont des machines virtuelles légères (machines virtuelles) qui utilisent les ressources sous-jacentes des hyperviseurs telles que (RAM, CPU, disque dur et noyau).
La commande Docker est utilisée pour gérer les conteneurs et les images à partir de la ligne de commande. Dans cet article, nous couvrirons 20 exemples de commandes Docker utiles sous Linux. Je suppose que docker est déjà installé sur votre système Linux et que votre utilisateur habituel est ajouté au groupe docker.
1) Vérifier la version de Docker
La première tâche importante lorsque vous travaillez sur des conteneurs Docker est de connaître votre version Docker, exécutez la commande Docker ci-dessous pour connaître la version
$ docker --version Docker version 20.10.12, build e91ed57 $
2) Afficher les informations sur l'ensemble du système
La commande 'docker info' est utilisée pour afficher les informations à l'échelle du système telles que le répertoire racine Docker, la version du système d'exploitation, la version du noyau, la version Docker, la RAM, le processeur et le registre Docker.
$ docker info
3) Rechercher des images Docker
À l'aide de la commande "recherche docker", nous pouvons rechercher les images du conteneur docker à partir du registre du hub docker. Supposons que je souhaite rechercher les dernières images docker nginx.
$ docker search nginx
La sortie de la commande ci-dessus ressemblerait à celle ci-dessous,
4) Télécharger les images du conteneur Docker
La commande Docker pull est utilisée pour télécharger des images de conteneur à partir du registre Docker Hub.
Syntaxe :
$ docker pull
La commande Docker pull essaie toujours de télécharger la dernière version de l'image, bien que nous puissions spécifier la version particulière de l'image. Supposons que je souhaite télécharger la dernière version de l'image rsyslog
$ docker pull nginx Using default tag: latest latest: Pulling from library/nginx 5eb5b503b376: Pull complete 1ae07ab881bd: Pull complete 78091884b7be: Pull complete 091c283c6a66: Pull complete 55de5851019b: Pull complete b559bad762be: Pull complete Digest: sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest $
Téléchargement d'une image spécifique basée sur la version, supposons que nous voulons télécharger l'image docker Ubuntu:20:04, exécutez
$ docker pull ubuntu:20.04 20.04: Pulling from library/ubuntu 08c01a0ec47e: Pull complete Digest: sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be Status: Downloaded newer image for ubuntu:20.04 docker.io/library/ubuntu:20.04 $
5) Afficher les images de conteneur Docker téléchargées
Comme nous savons que le répertoire racine de docker est '/var/lib/docker', donc chaque fois que nous téléchargeons des images à l'aide de la commande docker pull, toutes les images seront enregistrées dans le répertoire racine de docker.
Pour afficher toutes les images de conteneur Docker téléchargées, exécutez
$ docker image ls or $ docker images
Sortie
6) Exécuter le conteneur Docker
Les conteneurs sont lancés avec la commande "docker run", supposons que je souhaite exécuter un conteneur à partir de l'image nginx.
$ docker run -it -p 9000:80 --name=myapp nginx
sortie
Ci-dessus exécutera un conteneur avec le nom "myapp" et nous définissons également la règle pat de telle sorte que si une demande arrive sur le port 9000 sur l'hôte docker, cette demande sera redirigée vers le conteneur myapp sur le port 80. Si vous avez peut-être remarqué que nous obtenons directement la console juste après avoir exécuté la commande. Tapez exit pour arrêter / fermer le conteneur et si vous voulez sortir du conteneur sans l'arrêter, tapez "ctrl+p+q"
Vous pouvez maintenant accéder à votre application nginx sur le port 9000 à l'aide de la commande curl,
$ curl http://<Docker-Host-IP-Address>:9000/
7) Exécuter le conteneur en mode détaché
Nous pouvons exécuter un conteneur en mode détachement en utilisant l'option -d dans la commande 'docker run'. Ici, le mode détachement signifie que nous obtiendrons l'invite de commande après avoir exécuté la commande docker run. L'exemple est montré ci-dessous,
$ docker run -it -d -p 9080:80 --name=myapp2 httpd f7dc2ece64708a9de5e53f341b0c7d17ac9189fb7c99079ad8744348bc5a6faa $
8) Afficher tous les conteneurs en cours d'exécution
La commande Run 'docker ps' est utilisée pour afficher tous les conteneurs en cours d'exécution
$ docker ps
Pour afficher tous les conteneurs en cours d'exécution avec les conteneurs quittés ou arrêtés, exécutez
$ docker ps -a
9) Accès à la console du conteneur
Pour obtenir l'accès à la console du conteneur, exécutez la commande "docker exec"
[email protected]:~$ docker exec -it myapp /bin/bash [email protected]:/#
Pour sortir de la console tapez la commande exit
10) Démarrer, arrêter, redémarrer et tuer les conteneurs
Tout comme les machines virtuelles, nous pouvons démarrer, arrêter et redémarrer les conteneurs Docker.
Utilisez la commande ci-dessous pour arrêter un conteneur en cours d'exécution
$ docker stop myapp2 myapp2 $
Au lieu du nom du conteneur, nous pouvons également utiliser l'ID du conteneur
Utilisez la commande ci-dessous pour démarrer un conteneur.
$ docker start myapp2 myapp2 $
Utilisez la commande ci-dessous pour redémarrer un conteneur.
$ docker restart myapp2 myapp2 $
Tout comme le processus, nous pouvons également tuer un conteneur, utilisez la commande ci-dessous pour tuer un conteneur.
[email protected]:~$ docker kill myapp2 myapp2 [email protected]:~$
11) Supprimer un conteneur
Docker Container est supprimé ou supprimé à l'aide de la commande 'docker rm'. 'docker rm' ne fonctionnera que lorsque docker est arrêté / arrêté.
Syntaxe :
$ docker rm {container_name_OR_container_id}
$ docker stop test-app test-app $ docker rm test-app test-app $
Pour supprimer un conteneur en cours d'exécution avec force, utilisez l'option '-f' dans la commande docker rm. L'exemple est montré ci-dessous
$ docker rm -f nginx-app
12) Supprimer les images du conteneur Docker
Tout comme les conteneurs, nous pouvons également supprimer ou supprimer des images Docker. La commande 'docker rmi' est utilisée pour supprimer les images du conteneur docker.
Supposons que nous voulions supprimer une image docker "Ubuntu :20.04", exécutez
$ docker rmi ubuntu:20.04 Untagged: ubuntu:20.04 Untagged: [email protected]:669e010b58baf5beb2836b253c14f7c07a4dc93f474be Deleted: sha256:54c9d81cbb440897908abdcaa98674db831e40a66f704f Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f629593310578d2 $
Dans la commande ci-dessus, nous pouvons utiliser l'identifiant de l'image à la place du nom de l'image
$ docker rmi 54c9d81cbb44
13) Enregistrer et charger l'image du conteneur Docker
Pour enregistrer une image docker dans un fichier tar, utilisez la commande "docker save", l'exemple est illustré ci-dessous :
$ docker save nginx -o mynginx.tar $ ls -l mynginx.tar -rw------- 1 sysops sysops 145931776 Feb 5 10:30 mynginx.tar $
Pour charger une image docker à partir d'un fichier tar, utilisez la commande "docker load"
$ docker load -i mynginx.tar Loaded image: nginx:latest $
Remarque :Ces commandes deviennent utiles lorsque nous souhaitons transférer une image Docker d'un hôte Docker à un autre.
14) Copier les fichiers/dossiers dans le conteneur
Nous pouvons copier des fichiers ou un dossier dans un conteneur à partir de l'hôte docker à l'aide de la commande "docker cp". Dans ce qui suit, nous copions le dossier "mycode" dans le conteneur myapp
$ docker cp mycode myapp:/tmp
15) Afficher l'historique d'une image Docker
L'historique de l'image Docker signifie ici quelles commandes sont exécutées lors de la création d'images Docker, nous pouvons afficher ces commandes à l'aide de "l'historique Docker"
Syntaxe :#
$ histoire docker {Image_Name_OR_Image_id}
$ docker history nginx
16) Afficher les journaux du conteneur
Nous pouvons afficher les journaux des conteneurs sans nous y connecter, exécutez la commande "docker logs"
Syntaxe :
$ docker logs {container_name_or_container_id}
$ docker logs myapp
Pour afficher les journaux en direct, utilisez l'option "-f" dans la commande docker logs
$ docker logs -f myapp
Pour afficher les 10 derniers journaux d'un conteneur, exécutez
$ docker logs --tail 10 myapp
17) Afficher les statistiques d'utilisation des ressources du ou des conteneurs
Pour afficher l'utilisation du processeur, de la mémoire et des E/S réseau de tous les conteneurs, exécutez la commande "docker stats"
$ docker stats
La commande ci-dessus affichera la diffusion en direct des statistiques d'utilisation des ressources de tous les conteneurs.
Pour afficher les statistiques d'un conteneur spécifique, exécutez les statistiques de docker suivies du conteneur
$ docker stats myapp
Statistiques d'utilisation des ressources sans diffusion en direct
$ docker stats --no-stream
Nous pouvons afficher les processus en cours d'exécution d'un conteneur avec 'docker top ‘ commande.
Syntaxe :#
menu fixe haut {Container_Name_OR_ID}
$ docker top myapp
18) Afficher l'adresse IP du conteneur
Les informations de bas niveau du conteneur sont affichées à l'aide de la commande "docker inspect". Nous pouvons récupérer l'adresse IP d'un conteneur à partir de la commande "docker inspect"
Syntaxe :
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
Exemple
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myapp 172.17.0.2 $
19) Créer une image de conteneur Docker
L'image du conteneur Docker est construite à l'aide de la commande "docker build", mais pour que la commande docker build soit d'abord créée, nous devons créer Dockerfile. Supposons que Dockerfile soit créé dans le dossier mycode, puis exécutez la commande suivante pour créer une image docker,
$ cd mycode $ docker build -t mynginx:v2 .
Lire aussi :Comment créer une image Docker avec Dockerfile (étape par étape)
20) Définir la balise sur l'image Docker
La commande 'docker tag' est utilisée pour définir une balise sur une image.
Syntaxe :
$ docker tag source_image{:tag} target_image{:tag}
Supposons que je veuille définir la balise de l'image source 'mariadb:latest' comme 'mariadb:10.03'
$ docker tag mariadb:latest mariadb:10.03 $ docker images | grep -i mariadb mariadb 10.03 45a5a43e143a 3 days ago 410MB mariadb latest 45a5a43e143a 3 days ago 410MB $
Si vous souhaitez télécharger l'image sur votre registre privé, vous marquez l'image de manière à ce qu'elle ait une URL de registre suivie du projet et de l'image.
$ docker tag mariadb:latest myregistry:5000/db/mariadb:10.03
Connectez-vous maintenant à votre registre privé à l'aide de la commande "docker login" et exécutez la commande docker push pour le télécharger.
$ docker push myregistry:5000/db/mariadb:10.03
C'est tout de cet article. J'espère que vous avez trouvé ces exemples instructifs. N'hésitez pas à partager vos questions et commentaires dans les sections de commentaires ci-dessous.
Lire aussi :Comment créer et utiliser un réseau MacVLAN dans Docker