GNU/Linux >> Tutoriels Linux >  >> Linux

Exemples utiles de la commande Docker ps

L'une des premières commandes Docker que vous utilisez est le docker ps commande. Il montre les conteneurs en cours d'exécution :

docker ps

En fait, l'exécution de cette commande vous donne une liste des conteneurs en cours d'exécution et leur ID de conteneur unique, le nom de l'image, la commande qu'il exécute, le temps écoulé depuis son exécution (uptime) et les ports qu'il utilise.

Mais vous pouvez faire un peu plus avec. Vous pouvez afficher les conteneurs arrêtés, filtrer le résultat ou simplement afficher les ID des conteneurs.

Examinons un peu plus en détail cette commande essentielle de Docker.

La commande docker ps

Docker a un alias pour afficher tous les conteneurs en cours d'exécution avec une convention de dénomination conviviale POSIX.

C'est le ps sous-commande dans Docker. C'est un alias de docker container ls . Qui, comme vous pouvez le deviner, est utilisé pour répertorier les conteneurs Docker.

Voici un exemple d'exécution de docker ps sur mon ordinateur :

$ docker ps 
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Comme vous pouvez le voir, cette commande affiche des détails sur tous les conteneurs en cours d'exécution.

Les détails affichés sont l'ID unique du conteneur, le nom de l'image, la commande que le conteneur exécute, la date de création du conteneur, la disponibilité, les ports mappés et le nom du conteneur.

En tant qu'administrateur système, vous utiliserez souvent cette commande dans un script. Docker fournit quelques options qui peuvent être utiles lorsque vous exécutez docker ps dans un script.

Afficher tous les conteneurs (pas seulement ceux en cours d'exécution)

Comme UNIX ps est utilisée pour afficher les processus (programmes en cours d'exécution), Docker se comporte de la même manière.

Exécution de docker ps n'affichera que les conteneurs Docker actifs.

Si vous arrêtez un conteneur en cours d'exécution, il existe toujours, seulement qu'il n'est plus en cours d'exécution.

Pour voir les conteneurs qui sont à l'état arrêté, utilisez le --all (ou -a ) comme ceci :

docker ps --all

J'ai arrêté le conteneur transmission_web . Voyons ce que j'obtiens dans la sortie.

$ docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Comme vous pouvez le voir, le -a L'option affiche également un conteneur qui a été arrêté.

Filtrer la sortie de docker ps pour un résultat plus précis

Le docker ps La commande a une option très utile, --filter (ou -f pour faire court).

Comme le montre le nom de l'option, vous pouvez filtrer les conteneurs à l'aide des champs suivants :

  • id
  • name
  • label
  • exited
  • status
  • ancestor
  • since
  • volume
  • publish
  • health
  • isolation

J'ai créé un conteneur nommé nextcloud_server . Je souhaite voir des détails sur les conteneurs, mais uniquement ceux portant le nom que je recherche. Voyons comment utiliser le name filtre.

$ docker ps --filter "name=nextcloud_server"
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                   NAMES
58c7013a49c3   nextcloud   "/entrypoint.sh apac…"   3 hours ago   Up 3 hours   0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server

J'ai plusieurs conteneurs en cours d'exécution, mais en utilisant le name le filtre ne me montre que les conteneurs qui correspondent au nom.

Essayons d'utiliser le id filtre. J'ai un conteneur MariaDB avec l'ID "140161b8b139". Je vais utiliser la commande suivante pour y parvenir.

$ docker ps --filter "id=140161b8b139"
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS        PORTS      NAMES
140161b8b139   mariadb   "docker-entrypoint.s…"   15 hours ago   Up 15 hours   3306/tcp   nextcloud_db

Facile! J'ai reçu le conteneur avec l'ID correspondant.

Afficher les conteneurs dans l'ordre dans lequel ils ont été créés

Oui, vous pouvez répertorier les conteneurs triés dans l'ordre de leur date de création en utilisant le --latest (ou l pour faire court).

La commande est la plus récente en haut et la plus ancienne en bas.

Voici un exemple de sortie de l'exécution de la commande docker ps --latest sur mon ordinateur :

$ docker ps --latest
CONTAINER ID   IMAGE                              COMMAND                  CREATED        STATUS                      PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   15 hours ago   Up 15 hours                 0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  16 hours ago   Exited (137) 16 hours ago                                           transmission_web

Il y a quelques pièges avec cette commande.

  • Tous les conteneurs utilisés comme "dépendance" ne seront pas répertoriés
  • La sortie inclut tous les états des conteneurs (ce qui signifie que même les conteneurs arrêtés seront répertoriés)

J'avais créé le conteneur "nextcloud_server" avec MariaDB comme "dépendance". Ainsi, ce conteneur n'est pas répertorié dans la sortie lors de l'utilisation de --latest drapeau.

Beaucoup de script ? Afficher uniquement les ID de conteneur

Supposons que vous écriviez un script et que vous souhaitiez uniquement traiter les ID de conteneur afin de pouvoir effectuer des actions sur les conteneurs. Pour cela, vous pouvez utiliser le --quiet (ou -q pour faire court).

Ci-dessous est la sortie de l'exécution de docker ps -q sur mon ordinateur.

$ docker ps -q
58c7013a49c3
140161b8b139

Comme vous pouvez le voir, la sortie se compose uniquement d'ID de conteneur (de conteneurs en cours d'exécution) et rien d'autre.

Comme vous pouvez le constater, la commande Docker ps ne se limite pas à afficher les informations sur le conteneur en cours d'exécution. Faites-moi savoir si vous avez appris quelque chose de nouveau ou si vous connaissez un autre exemple utile du docker ps commande.


Linux
  1. 12 exemples de commandes Wget utiles sous Linux

  2. Commande ls sous Linux :17 exemples utiles expliqués

  3. 9 exemples utiles de la commande Split sous Linux

  4. 5 exemples pratiques de la commande dd sous Linux

  5. Comment utiliser la commande id sous Linux :5 exemples utiles

Exemples de commandes Wget utiles dans le système Linux

20 exemples de commandes de volume Docker utiles pour les développeurs modernes

10 exemples utiles de la commande Sort sous Linux

Exemples essentiels de la commande ps sous Linux

15 exemples super utiles de la commande Find sous Linux

12 exemples de commandes de date Linux utiles