Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

15 commandes Docker pour gérer les conteneurs [Liste, Arrêter, Démarrer, Supprimer et plus]

sécurité docker
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Docker est un outil populaire pour créer et exécuter des applications conteneurisées. Il est disponible pour plusieurs plates-formes et utilisé comme l'une des technologies de conteneur back-end dans Kubernetes.

Dans Docker, soit vous créez vos propres images pour exécuter votre application en tant que conteneur, soit vous pouvez extraire et utiliser des milliers d'images publiques du référentiel Docker et les utiliser dans votre projet. Une fois que votre image est prête, vous pouvez lancer vos conteneurs en utilisant ces images. Un conteneur est une instance en cours d'exécution d'une image Docker.

Gérant Docker conteneurs est l'un des aspects les plus importants à surveiller en tant qu'administrateur système qui gère les hôtes/conteneurs Docker.

Dans cet article, nous allons nous concentrer sur gestion des conteneurs à l'aide de docker commander.

run Command

docker run La commande est utilisée pour exécuter un conteneur à partir d'une image en spécifiant le Image ID au sein de l’ Repository (facultatif) Tag nom.

$ docker run {image}

Mise en situation :

$ docker run nginx

La commande ci-dessus exécute une instance de <span class="NormalTextRun SpellingErrorV2 SCXW251451022 BCX0">nginx</span> application sur un hôte docker, s'il existe déjà. S'il n'existe pas sur l'hôte Docker, il sort vers le hub docker (par défaut) et tire l'image vers le bas. Mais cela se fait la seule première fois. Pour les fois suivantes, la même image est réutilisée.

Si vous souhaitez exécuter une version particulière d'une image, spécifiez sa version séparée par deux points. Ceci est connu comme Tag. Si vous ne spécifiez aucune balise, docker la considérera par défaut comme la plus récente.

De plus, si vous souhaitez exécuter le conteneur en arrière-plan en mode détaché afin de revenir à l'invite une fois que Docker a lancé le conteneur, utilisez -d drapeau.

Mise en situation :

$ docker run nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
33847f680f63: Pull complete
dbb907d5159d: Pull complete
8a268f30c42a: Pull complete
b10cf527a02d: Pull complete
c90b090c213b: Pull complete
1f41b2f2bf94: Pull complete
Digest: sha256:8f335768880da6baf72b70c701002b45f4932acae8d574dedfddaf967fc3ac90
Status: Downloaded newer image for nginx:latest
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/08/15 12:13:23 [notice] 1#1: using the "epoll" event method
2021/08/15 12:13:23 [notice] 1#1: nginx/1.21.1
2021/08/15 12:13:23 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2021/08/15 12:13:23 [notice] 1#1: OS: Linux 5.8.0-1039-azure
2021/08/15 12:13:23 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2021/08/15 12:13:23 [notice] 1#1: start worker processes
2021/08/15 12:13:23 [notice] 1#1: start worker process 33
2021/08/15 12:13:23 [notice] 1#1: start worker process 34

ps Command

docker ps La commande répertorie tous les conteneurs en cours d'exécution et quelques informations de base à leur sujet. Comme l'ID du conteneur, le nom de l'image, l'heure de création du conteneur, l'état actuel et le nom du conteneur. Chaque conteneur reçoit un nom aléatoire (s'il n'est pas spécifié explicitement) et un ID.

Mise en situation :

$ docker ps 
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES 
133f5e0267a5   nginx     "/docker-entrypoint.…"   10 seconds ago   Up 10 seconds   80/tcp    jolly_elion 

Pour répertorier tous les conteneurs en cours d'exécution et non en cours d'exécution/sortis à la fois, vous pouvez utiliser :

$ docker ps -a

Mise en situation :

$ docker ps -a 
CONTAINER ID   IMAGE         COMMAND                  CREATED        STATUS                    PORTS     NAMES 
fcec129f0eb4   nginx         "/docker-entrypoint.…"   46 hours ago   Exited (0) 46 hours ago             interesting_ishizaka 
6e8b1e441aa6   hello-world   "/hello"                 2 days ago     Exited (0) 2 days ago               keen_shirley 

ls Command

Cliquer sur 'j'aime' ps commander, ls peut également être utilisé pour répertorier les conteneurs. -a flag peut être utilisé pour répertorier tous les conteneurs (pas seulement ceux en cours d'exécution).

$ docker container ls

Mise en situation :

$ docker container ls
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS      NAMES
15796e91c30b   redis     "docker-entrypoint.s…"   2 seconds ago    Up 1 second     6379/tcp   flamboyant_neumann
904390b65d45   nginx     "/docker-entrypoint.…"   14 minutes ago   Up 14 minutes   80/tcp     nginx_new
$

stop Command

docker stop La commande est utilisée pour arrêter un conteneur en cours d'exécution. Ici, nous devons mettre le nom ou l'ID du conteneur avec cela.

$ docker stop {container-id}

En cas de succès, il renverrait le nom ou l'ID du docker.

Mise en situation :

$ docker ps 
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES 
133f5e0267a5   nginx     "/docker-entrypoint.…"   50 seconds ago   Up 49 seconds   80/tcp    jolly_elion 

Cela renverra le CONTAINER ID que vous pouvez utiliser pour arrêter le conteneur.

$ docker stop 133f5 
133f5

Pour cet exemple et les suivants, notez que vous n'avez pas besoin de spécifier une valeur complète de CONTAINER ID. Il accepte jusqu'à la partie, ce qui le rend unique parmi les autres conteneurs en cours d'exécution, car Docker sait quel conteneur arrêter.

rm Command

docker rm La commande supprime un conteneur arrêté ou quitté.

$ docker rm {CONTAINER NAME or ID}

Mise en situation :

$ docker rm 133f5
133f5
$

exec Command

Nous pouvons utiliser exec commande pour entrer dans un conteneur en cours d'exécution. C'est utile pour déboguer des conteneurs en cours d'exécution ou faire des choses dans un conteneur.

$ docker exec –it {container} {command}

Mise en situation :

Supposons que vous vouliez lancer bash shell (en supposant que l'image dispose de Bash, vous pouvez également utiliser d'autres shells disponibles) dans un conteneur nommé unruffled_meninsky en mode interactif, utilisez :

$ docker exec –it unruffled_meninsky /bin/bash

Cela devrait vous atterrir à l'intérieur du conteneur sur un bash coquille. Ici le drapeau -i signifie mode interactif et -t pour la borne. Si vous souhaitez simplement exécuter une ou plusieurs commandes et sortir du conteneur, vous pouvez utiliser :

$ docker exec unruffled_meninsky cat /etc/hosts
127.0.0.1	localhost 
::1	localhost ip6-localhost ip6-loopback 
fe00::0	ip6-localnet 
ff00::0	ip6-mcastprefix 
ff02::1	ip6-allnodes 
ff02::2	ip6-allrouters 
172.17.0.2	cd2eed4acf34 

logs Command

Dans le cas où un conteneur est lancé en mode détaché et que nous souhaitons voir ses journaux, nous pouvons utiliser logs commande pour consulter ses journaux :

$ docker logs {CONTAINER NAME or ID}

Mise en situation :

$ docker logs 7da6dcebaf9c
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/08/15 12:14:09 [notice] 1#1: using the "epoll" event method
2021/08/15 12:14:09 [notice] 1#1: nginx/1.21.1
2021/08/15 12:14:09 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2021/08/15 12:14:09 [notice] 1#1: OS: Linux 5.8.0-1039-azure
2021/08/15 12:14:09 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2021/08/15 12:14:09 [notice] 1#1: start worker processes
2021/08/15 12:14:09 [notice] 1#1: start worker process 31
2021/08/15 12:14:09 [notice] 1#1: start worker process 32
$

cp Command

Pour copier des fichiers entre un conteneur et le système de fichiers localhost, vous pouvez utiliser cp commander.

$ docker container cp {CONTAINER NAME or ID:SRC_PATH} {DEST_PATH}|-

Mise en situation :

$ docker container cp quirky_cray:/etc/nginx/nginx.conf nginx.conf.bkp

export Command

La commande de conteneur Docker offre une option pour exporter le système de fichiers d'un conteneur en tant que fichier TAR.

$ docker container export {CONTAINER NAME or ID}

inspect Command

Nous pouvons vérifier des informations détaillées sur un conteneur en utilisant inspect commande comme:

$ docker inspect {CONTAINER NAME or ID}

OR

$ docker container inspect {CONTAINER NAME or ID}

kill Command

Un conteneur en cours d'exécution peut être tué en utilisant kill commande avec une option --signal or -s drapeau. Plusieurs conteneurs peuvent être spécifiés pour les tuer en une seule fois.

$ docker kill {CONTAINER NAME or ID} [--signal VAL]

Mise en situation :

$ docker kill cd9005a0b5d2 -s 9
cd9005a0b5d2
$

stats Command

Pour afficher un flux en direct de l'utilisation des ressources d'un conteneur, vous pouvez utiliser stats commander:

$ docker container stats {CONTAINER NAME or ID}

Mise en situation :

$ docker container stats thirsty_volhard
CONTAINER ID   NAME              CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O     PIDS
904390b65d45   thirsty_volhard   0.00%     3.406MiB / 7.775GiB   0.04%     1.02kB / 0B   0B / 8.19kB   3

top Command

Cliquer sur 'j'aime' top commande sous Linux, nous pouvons l'utiliser avec Docker pour obtenir une liste des processus en cours d'exécution.

$ docker container top {CONTAINER NAME or ID}

Mise en situation :

$ docker container top thirsty_volhard
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                2603                2582                0                   12:34               ?                   00:00:00            nginx: master process nginx -g daemon off;
systemd+            2659                2603                0                   12:34               ?                   00:00:00            nginx: worker process
systemd+            2660                2603                0                   12:34               ?                   00:00:00            nginx: worker process
$

rename Command

Pour renommer un conteneur existant, utilisez rename commander.

$ docker container rename {OLD CONTAINER NAME} {NEW CONTAINER NAME}

Mise en situation :

$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
904390b65d45   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   80/tcp    nginx_container
$ docker container rename nginx_container nginx_new
$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
904390b65d45   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   80/tcp    nginx_new
$

diff Command

Nous pouvons inspecter les modifications apportées aux fichiers ou aux répertoires sur le système de fichiers d'un conteneur avec diff commander.

$ docker container diff {CONTAINER NAME or ID}

Mise en situation :

$ docker container diff nginx_new
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/uwsgi_temp
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp
A /var/cache/nginx/scgi_temp
C /etc
C /etc/nginx
C /etc/nginx/conf.d
C /etc/nginx/conf.d/default.conf
C /run
A /run/nginx.pid
$

Résumé

Pour conclure, Doker propose un ensemble complet de commandes pour gérer les conteneurs de leur création à leur destruction. Nous avons couvert certains des commandes importantes et leur utilisation dans cet article qui devrait vous donner une bonne idée de la gestion des conteneurs docker.

Ensuite, découvrez quelques-uns des ressources pour apprendre DevOps.

Merci à nos commanditaires
Plus de bonnes lectures sur DevOps
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder