Cómo enumerar contenedores en Docker

965

Hay un comando para enumerar imágenes, docker imagespero no parece haber un correspondiente docker containers.

Aparte de convertirse en root y mirar /var/lib/dockerallí, no parece una forma de hacerlo. ¿Me estoy perdiendo de algo? ¿Es algo que se supone que uno no debe hacer?

w00t
fuente
Pregunta similar sobre Stack Overflow stackoverflow.com/questions/38464549/…
Yogesh

Respuestas:

1640

Para mostrar solo los contenedores en ejecución, use el comando dado:

docker ps

Para mostrar todos los contenedores, use el comando dado:

docker ps -a

Para mostrar el último contenedor creado (incluye todos los estados) use el comando dado:

docker ps -l

Para mostrar n últimos contenedores creados (incluye todos los estados) use el comando dado:

docker ps -n=-1

Para mostrar el tamaño total de los archivos, use el comando dado:

docker ps -s

El contenido presentado anteriormente es de docker.com .

En la nueva versión de Docker, los comandos se actualizan y se agregan algunos comandos de administración:

docker container ls

Se utiliza para enumerar todos los contenedores en ejecución.

docker container ls -a

Y luego, si quieres limpiarlos todos,

docker rm $(docker ps -aq)

Se utiliza para enumerar todos los contenedores creados independientemente de su estado.

Y para detener todos los contenedores Docker (fuerza)

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

Aquí el contenedor es el comando de gestión.

vieux
fuente
@RutgerHofste ambos comandos ( docker rmy docker ps) no aparecen en la ayuda del cargador de muelle.
Munchkin
10
Otra forma útil de limpiar todos los elementos innecesarios como contenedores colgantes, imágenes no utilizadas, registros, etc. es mediante el uso docker system prune --all. Puede encontrar la documentación de la
ventana
después de extraer una imagen, ps -a, NO la enumera. parece que solo puede enumerar imágenes que se han ejecutado al menos una vez?
ftravers
docker psenumera todos los contenedores en ejecución y en pausa. Para enumerar solo los que se ejecutan:docker ps --filter="status=running"
WindyFields
@ftravers docker pssolo muestra información sobre contenedores. Lo que quieres es información sobre imágenes. Puede ver todas las imágenes locales usando el docker imagescomando.
Lappro
141

Para enumerar todos los contenedores en ejecución y detenidos

docker ps -a

Para enumerar todos los contenedores en ejecución (solo indicando lo obvio y también el uso de ejemplo de la opción de filtrado -f)

docker ps -a -f status=running

Para enumerar todos los contenedores en ejecución y detenidos, mostrando solo su ID de contenedor

docker ps -aq

Para eliminar todos los contenedores que NO se están ejecutando

docker rm `docker ps -aq -f status=exited`
kramfs
fuente
32

Tenga en cuenta que hace algún tiempo hubo una actualización de este comando. No mostrará el tamaño del contenedor de forma predeterminada (ya que esto es bastante costoso para muchos contenedores en ejecución). Úselo docker ps -spara mostrar el tamaño del contenedor también.

qkrijger
fuente
De acuerdo con la respuesta de mrh a continuación, también necesitará el interruptor -a para ver los contenedores que no se están ejecutando (probablemente sea el caso de aquellos que desea eliminar), por lo que el comando final es docker ps -as(no se olvide de anteponer sudosi el demonio se está ejecutando como root)
Anthony DiSanti
21

docker ps -s mostrará solo el tamaño de los contenedores en ejecución.

Para verificar el tamaño de todos los contenedores use docker ps -as

mrh
fuente
19

También hay las siguientes opciones:

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

desde: 1.13.0 (2017-01-18) :

Reestructurar los comandos de la CLI agregando docker imagey docker containercomandos para una mayor coherencia # 26025

y como se indica aquí: Al presentar Docker 1.13 , se alienta a los usuarios a adoptar la nueva sintaxis:

CLI reestructurado

En Docker 1.13, reagrupamos cada comando para ubicarnos debajo del objeto lógico con el que está interactuando. Por ejemplo, listy startde contenedores ahora son subcomandos de docker containery historyes un subcomando de docker image.

Estos cambios nos permiten limpiar la sintaxis de Docker CLI, mejorar el texto de ayuda y hacer que Docker sea más fácil de usar. La antigua sintaxis de comandos todavía es compatible, pero alentamos a todos a adoptar la nueva sintaxis .

tgogos
fuente
1
gran información, una lástima que docker --helptiene la interfaz sugerida 3 páginas atrás en su salida, oculta antes de los comandos en desuso!
danio
13

Para enumerar solo los contenedores SHA1:

docker ps -aq --no-trunc

De esa manera, puede usar la lista de todos los contenedores para otros comandos (que aceptan múltiples identificadores de contenedor como parámetros).

Por ejemplo, para enumerar solo el nombre de todos los contenedores (ya que docker psenumere solo sus nombres con otra información):

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

El conjunto de comandos de Docker es simple y se mantiene bien unido:

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

Enseñar primero los alias es confuso. Una vez que comprenda lo que está sucediendo, pueden guardar algunas teclas:

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

Hay varios alias en Docker. Por ejemplo:

docker rmi
docker image rm
docker image rmi
docker image remove

son todos el mismo comando (ver por ti mismo usando docker help image rm).

Expiación limitada
fuente
4

Hay muchas formas de enumerar todos los contenedores.

Puedes encontrar usando 3 Alias ls, ps, listcomo este.

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

También puede usar la opción de dar [option].

Opciones -:

  -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

Puede usar una opción como esta:

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
Sr. Singh
fuente
3

Para mostrar solo contenedores en ejecución

docker ps

Para mostrar todos los contenedores (incluye todos los estados)

docker ps -a

Para mostrar el último contenedor creado (incluye todos los estados)

docker ps -l

Para mostrar n últimos contenedores creados (incluye todos los estados)

docker ps -n=-1

Para mostrar el tamaño total de los archivos

docker ps -s

En la nueva versión de Docker, los comandos se actualizan y se agregan algunos comandos de administración:

docker container ls

Lista todos los contenedores en ejecución.

docker container ls -a

Ankit Marothi
fuente
3

Lista de contenedores en ejecución : -

$ docker ps

Listar todos los contenedores: -

$ docker ps -a

Listar solo contenedores detenidos : -

$ docker ps --filter "status=exited"

o

$ docker ps -f "status=exited"

daniel maina
fuente
Estos comandos ya se han publicado varias veces: ¿cuál es la razón para duplicar otras respuestas?
Nico Haase
2

solo una forma conveniente de obtener los últimos n = 5 contenedores (sin importar si se ejecutan o no):

$ docker container ls -a -n5
Vic K
fuente
2

Use docker container lspara enumerar todos los contenedores en ejecución.

Use la bandera -apara mostrar todos los contenedores (no solo en ejecución). es decirdocker container ls -a

Use la bandera -qpara mostrar contenedores y sus ID numéricos. es decirdocker container ls -q

Visite la documentación para conocer todas las opciones disponibles para este comando.

menuka
fuente
1

Recibí el mensaje de error Cannot connect to the Docker daemon.Olvidé que estoy ejecutando el demonio como root y necesitaba sudo:

$ sudo docker ps
vezenkov
fuente
1
alias docker="sudo --group docker docker"
ctrl-alt-delor
1
docker ps [OPTIONS]

El siguiente comando mostrará solo los contenedores en ejecución de forma predeterminada.

docker ps

Para ver todos los contenedores:

docker ps -a

Para mostrar el último contenedor creado:

docker ps -l
Nobita
fuente