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?

w00t
la source
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.

vieux
la source
@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`
kramfs
la source
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.

qkrijger
la source
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

mrh
la source
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 .

tgogos
la source
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)
VonC
la source
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).

Expiation limitée
la source
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
Mr Singh
la source
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

Ankit Marothi
la source
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"

daniel maina
la source
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
Vic K
la source
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.

menuka
la source
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
vezenkov
la source
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
Nobita
la source