GNU/Linux >> Tutoriales Linux >  >> Linux

Ejemplos útiles del comando Docker ps

Uno de los primeros comandos de Docker que usa es docker ps dominio. Muestra los contenedores en ejecución:

docker ps

En realidad, ejecutar este comando le brinda una lista de contenedores en ejecución y su ID de contenedor único, el nombre de la imagen, el comando que está ejecutando, el tiempo desde que se está ejecutando (tiempo de actividad) y los puertos que está utilizando.

Pero puedes hacer un poco más con él. Puede mostrar los contenedores detenidos, filtrar el resultado o simplemente mostrar los ID de los contenedores.

Echemos un vistazo un poco más detallado a este comando esencial de Docker.

El comando docker ps

Docker tiene un alias para mostrar todos los contenedores en ejecución con una convención de nomenclatura compatible con POSIX.

Ese es el ps subcomando en Docker. Es un alias de docker container ls . Que, como puede adivinar, se usa para listar contenedores acoplables.

Aquí hay un ejemplo de ejecución de docker ps en mi computadora:

$ 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

Como puede ver, este comando muestra detalles sobre todos los contenedores en ejecución.

Los detalles que se muestran son la identificación única del contenedor, el nombre de la imagen, el comando que ejecuta el contenedor, la fecha en que se creó el contenedor, el tiempo de actividad, los puertos asignados y el nombre del contenedor.

Como administrador de sistemas, a menudo usará este comando en un script. Docker proporciona algunas opciones que pueden ser útiles cuando ejecuta docker ps en un guión.

Mostrar todos los contenedores (no solo los que se están ejecutando)

Como UNIX ps El comando se usa para mostrar procesos (programas que se están ejecutando), Docker se comporta de manera similar.

Ejecutando docker ps solo mostrará los contenedores docker que están activos.

Si detiene un contenedor en ejecución, aún existe, solo que ya no se está ejecutando.

Para ver los contenedores que están detenidos, use el --all (o -a ) opción así:

docker ps --all

Detuve el contenedor transmission_web . Veamos qué obtengo en la salida.

$ 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

Como puede ver, el -a La opción también muestra un contenedor que se detuvo.

Filtrar la salida de docker ps para un resultado más preciso

El docker ps El comando tiene una opción muy útil, --filter (o -f para abreviar).

Como se desprende del nombre de la opción, puede filtrar los contenedores usando los siguientes campos:

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

Creé un contenedor que se llama nextcloud_server . Quiero ver detalles sobre contenedores, pero solo aquellos con el nombre que busco. Veamos cómo usar el name filtro.

$ 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

Tengo varios contenedores corriendo, pero pasando usando el name el filtro solo me muestra los contenedores que coinciden con el nombre.

Intentemos usar el id filtrar. Tengo un contenedor MariaDB con el ID "140161b8b139". Usaré el siguiente comando para lograrlo.

$ 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

¡Fácil! Recibí el contenedor con la identificación coincidente.

Mostrar contenedores en el orden en que fueron creados

Sí, puede enumerar los contenedores clasificados en el orden de su fecha de creación usando el --latest (o l para abreviar).

El orden es el más reciente en la parte superior y el más antiguo en la parte inferior.

Aquí hay un resultado de muestra de ejecutar el comando docker ps --latest en mi computadora:

$ 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

Hay algunas trampas con este comando.

  • Cualquier contenedor que se utilice como "dependencia" no aparecerá en la lista
  • La salida incluye todos los estados de los contenedores (eso significa que se enumerarán incluso los contenedores que están detenidos)

Creé el contenedor "nextcloud_server" con MariaDB como su "dependencia". Entonces ese contenedor no aparece en la salida cuando se usa --latest bandera.

¿Scripting mucho? Mostrar solo ID de contenedor

Suponga que está escribiendo un script y solo quiere tratar con ID de contenedores para poder realizar acciones en los contenedores. Para eso, puedes usar --quiet (o -q para abreviar) opción.

A continuación se muestra el resultado de ejecutar docker ps -q en mi computadora.

$ docker ps -q
58c7013a49c3
140161b8b139

Como puede ver, la salida consta solo de ID de contenedor (de contenedores que se están ejecutando) y nada más.

Como puede ver, hay más en el comando Docker ps que solo mostrar la información del contenedor en ejecución. Avíseme si aprendió algo nuevo o si conoce algún otro ejemplo útil de docker ps comando.


Linux
  1. 12 ejemplos útiles de comandos Wget en Linux

  2. Comando ls en Linux:17 ejemplos útiles explicados

  3. 9 ejemplos útiles del comando Split en Linux

  4. 5 ejemplos prácticos del comando dd en Linux

  5. Cómo usar el comando id en Linux:5 ejemplos útiles

Ejemplos útiles de comandos Wget en el sistema Linux

20 ejemplos útiles de comandos de volumen de Docker para desarrolladores modernos

10 ejemplos útiles del comando Sort en Linux

Ejemplos esenciales del comando ps en Linux

15 ejemplos súper útiles del comando Buscar en Linux

12 ejemplos útiles de comandos de fecha de Linux