Comment répertorier les conteneurs dans Docker


965

Il y a une commande pour lister les images, docker imagesmais il ne semble pas y avoir de correspondant docker containers.

À part devenir root et y regarder /var/lib/docker, cela ne semble pas être un moyen de le faire. Suis-je en train de manquer quelque chose? Est-ce quelque chose que l'on n'est pas censé faire?


Question similaire sur Stack Overflow stackoverflow.com/questions/38464549/…
Yogesh

Réponses:


1640

Pour afficher uniquement les conteneurs en cours d'exécution, utilisez la commande donnée:

docker ps

Pour afficher tous les conteneurs, utilisez la commande donnée:

docker ps -a

Pour afficher le dernier conteneur créé (inclut tous les états), utilisez la commande donnée:

docker ps -l

Pour afficher les n derniers conteneurs créés (inclut tous les états), utilisez la commande donnée:

docker ps -n=-1

Pour afficher la taille totale des fichiers, utilisez la commande donnée:

docker ps -s

Le contenu présenté ci-dessus provient de docker.com .

Dans la nouvelle version de Docker, les commandes sont mises à jour et certaines commandes de gestion sont ajoutées:

docker container ls

Il est utilisé pour répertorier tous les conteneurs en cours d'exécution.

docker container ls -a

Et puis, si vous voulez tous les nettoyer,

docker rm $(docker ps -aq)

Il permet de lister tous les conteneurs créés quel que soit son état.

Et pour arrêter tous les conteneurs Docker (forcer)

docker rm -f $(docker ps -a -q)  

Ici, le conteneur est la commande de gestion.


@RutgerHofste les deux commandes ( docker rmet docker ps) n'apparaissent dans l'aide de docker.
Munchkin

10
Un autre moyen utile de nettoyer tous les éléments inutiles comme les conteneurs suspendus, les images inutilisées, les journaux, etc. est d'utiliser docker system prune --all. Vous pouvez trouver la documentation du docker ici
Arun Thundyill Saseendran

après qu'une image soit tirée, ps -a, ne la répertorie PAS. semble que vous ne pouvez lister que les images qui ont été exécutées au moins une fois?
ftravers

docker psrépertorie tous les conteneurs en cours d'exécution et en pause. Pour ne lister que ceux qui courent:docker ps --filter="status=running"
WindyFields

@ftravers docker psaffiche uniquement des informations sur les conteneurs. Ce que vous voulez, ce sont des informations sur les images. Vous pouvez voir toutes les images locales à l'aide de la docker imagescommande.
Lappro

141

Pour répertorier tous les conteneurs en cours d'exécution et arrêtés

docker ps -a

Pour répertorier tous les conteneurs en cours d'exécution (en indiquant simplement l'évidence et également l'exemple d'utilisation de l'option de filtrage -f)

docker ps -a -f status=running

Pour répertorier tous les conteneurs en cours d'exécution et arrêtés, en affichant uniquement leur ID de conteneur

docker ps -aq

Pour supprimer tous les conteneurs qui ne sont PAS en cours d'exécution

docker rm `docker ps -aq -f status=exited`

32

Notez qu'il y a quelque temps, il y a eu une mise à jour de cette commande. Il n'affichera pas la taille du conteneur par défaut (car c'est assez cher pour de nombreux conteneurs en cours d'exécution). Utilisez également docker ps -spour afficher la taille du conteneur.


Selon la réponse de mrh ci-dessous, vous aurez également besoin du commutateur -a pour afficher les conteneurs qui ne sont pas en cours d'exécution (ce sera probablement le cas pour ceux que vous souhaitez supprimer), de sorte que la commande finale est docker ps -as (n'oubliez pas de préfixer sudosi le démon fonctionne en tant que root)
Anthony DiSanti

21

docker ps -s affiche uniquement la taille des conteneurs en cours d'exécution.

Pour vérifier la taille de tous les conteneurs, utilisez docker ps -as


19

Il existe également les options suivantes:

docker container ls
docker container ls -a
# --all, -a
# Show all containers (default shows just running)

depuis: 1.13.0 (2017-01-18) :

Restructurez les commandes CLI en ajoutant docker imageetdocker container commandes pour plus de cohérence # 26025

et comme indiqué ici: Présentation de Docker 1.13 , les utilisateurs sont encouragés à adopter la nouvelle syntaxe:

CLI restructurée

Dans Docker 1.13, nous avons regroupé toutes les commandes pour les placer sous l'objet logique avec lequel elles interagissent. Par exemple, listet startdes conteneurs sont maintenant des sous-commandes de docker containerethistory est une sous-commande de docker image.

Ces modifications nous permettent de nettoyer la syntaxe Docker CLI, d'améliorer le texte d'aide et de rendre Docker plus simple à utiliser. L'ancienne syntaxe de commande est toujours prise en charge, mais nous encourageons tout le monde à adopter la nouvelle syntaxe .


1
grande info, dommage que docker --helpl'interface suggérée remonte de 3 pages dans sa sortie, cachée devant les commandes déconseillées!
danio

13

Pour répertorier uniquement les conteneurs SHA1:

docker ps -aq --no-trunc

De cette façon, vous pouvez utiliser la liste de tous les conteneurs pour d'autres commandes (qui acceptent plusieurs ID de conteneur comme paramètres).

Par exemple, pour ne lister que le nom de tous les conteneurs (puisque docker psne lister que leurs noms avec d'autres informations):

docker inspect --format='{{.Name}}' $(sudo docker ps -aq --no-trunc)

13

Le jeu de commandes Docker est simple et tient bien ensemble:

docker stack ls
docker service ls
docker image ls
docker container ls

Enseigner les alias en premier est déroutant. Une fois que vous comprenez ce qui se passe, ils peuvent enregistrer quelques frappes:

docker images -> docker image ls
docker ps -> docker container ls
docker rmi -> docker image rm
docker rm -> docker container rm

Il existe plusieurs alias dans Docker. Par exemple:

docker rmi
docker image rm
docker image rmi
docker image remove

sont tous la même commande (voir par vous-même en utilisant docker help image rm).


4

Il existe de nombreuses façons de répertorier tous les conteneurs.

Vous pouvez trouver en utilisant 3 alias ls, ps, listcomme celui-ci.

sudo docker container ls 
sudo docker container ps
sudo docker container list
sudo docker ps
sudo docker ps -a

Vous pouvez également utiliser l'option Give [option].

Options -:

  -a, --all             Show all containers (default shows just running)
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print containers using a Go template
  -n, --last int        Show last created containers (includes all states) (default -1)
  -l, --latest          Show the latest created container (includes all states)
      --no-trunc        Don't truncate output
  -q, --quiet           Only display numeric IDs
  -s, --size            Display total file sizes

Vous pouvez utiliser une option comme celle-ci:

sudo docker ps //Showing only running containers
sudo docker ps -a //All container (running + stopped)
sudo docker pa -l // latest
sudo docker ps -n <int valuse 1,2,3 etc>// latest number of created containers
sudo docker ps -s // Display container with size
sudo docker ps -q // Only display numeric IDs for containers
docker docker ps -a | tail -n 1 //oldest container

3

Pour afficher uniquement les conteneurs en cours d'exécution

docker ps

Pour afficher tous les conteneurs (inclut tous les états)

docker ps -a

Pour afficher le dernier conteneur créé (inclut tous les états)

docker ps -l

Pour afficher les n derniers conteneurs créés (inclut tous les états)

docker ps -n=-1

Pour afficher la taille totale des fichiers

docker ps -s

Dans la nouvelle version de Docker, les commandes sont mises à jour et certaines commandes de gestion sont ajoutées:

docker container ls

Liste tous les conteneurs en cours d'exécution.

docker container ls -a


3

Liste des conteneurs en cours d'exécution : -

$ docker ps

Liste de tous les conteneurs: -

$ docker ps -a

Liste uniquement les conteneurs arrêtés : -

$ docker ps --filter "status=exited"

ou

$ docker ps -f "status=exited"


Ces commandes ont déjà été publiées plusieurs fois - quelle est la raison de la duplication d'autres réponses?
Nico Haase

2

juste un moyen pratique d'obtenir les derniers n = 5 conteneurs (qu'ils soient en cours d'exécution ou non):

$ docker container ls -a -n5

2

Utilisez docker container lspour répertorier tous les conteneurs en cours d'exécution.

Utilisez l'indicateur -apour afficher tous les conteneurs (pas seulement en cours d'exécution). c'est à diredocker container ls -a

Utilisez le drapeau -q pour afficher les conteneurs et leurs ID numériques. c'est à diredocker container ls -q

Consultez la documentation pour découvrir toutes les options disponibles pour cette commande.


1

J'ai reçu le message d'erreur Cannot connect to the Docker daemon.J'ai oublié que j'exécute le démon en tant que root et que j'avais besoin sudo:

$ sudo docker ps

1
alias docker="sudo --group docker docker"
ctrl-alt-delor

1
docker ps [OPTIONS]

La commande suivante n'affichera que les conteneurs en cours d'exécution par défaut.

docker ps

Pour voir tous les conteneurs:

docker ps -a

Pour afficher le dernier conteneur créé:

docker ps -l
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.