Lo estoy intentando en este momento, no pude encontrar ninguna muestra en línea. gracias por votar en contra, me gusta la gente feliz.
Dimitri Kopriwa
Debería leer Cómo preguntar y proporcionar un ejemplo mínimo reproducible . ¿Cómo se ve docker --listo similar? ¿Cuál es el comando para crear un nuevo contenedor? etc
fedorqui 'ASÍ que deja de dañar'
1
Creo que mi pregunta es bastante clara, vota hacia arriba y daré la respuesta lo antes posible.
Dimitri Kopriwa
1
No existe tal cosa como un "contenedor" que yo sepa en bash. ¿Quizás te refieres a contenedores Docker ? Si es así, las personas que miran la etiqueta "bash" pueden confundirse. Sin embargo, obtienes la identificación del contenedor del nombre, estoy seguro de que es un comando real y no tiene nada que ver con el lenguaje de programación bash.
djhaskin987
Respuestas:
191
En Linux:
sudo docker ps -aqf "name=containername"
O en OS X, Windows:
docker ps -aqf "name=containername"
¿Dónde containernameestá el nombre de su contenedor?
Para evitar obtener falsos positivos, como señala @llia Sidorenko, puede usar anclajes de expresiones regulares así:
docker ps -aqf "name=^containername$"
explicación:
-qpor tranquilidad. salida solo el ID
-apara todos. funciona incluso si su contenedor no se está ejecutando
una nota para cualquiera que se encuentre con esto: sudo ya no es necesario en Linux si se agrega al grupo de docker (muy recomendado)
code_monk
9
Tenga cuidado con esta respuesta, ya que name = containername es en realidad un comodín y coincidirá con cualquier nombre (. *) Containername (. *)
Ilia Sidorenko
5
@ekkis usan la --no-truncbandera. entoncesdocker ps --no-trunc -aqf "name=containername"
code_monk
3
A partir de 2019-01-07, esto no funcionó para mí. Estoy usando Docker v17.06.0. El comando docker inspect --format="{{.Id}}" imageNamefuncionó para mí.
PatS
1
@code_monk, Gracias por la confirmación. Agregué un comentario a la respuesta de Rosberg Linhares, de donde obtuve la idea, y sugerí que su respuesta se cambiara por la respuesta correcta.
PatS
37
Puedes probar esto:
docker inspect --format="{{.Id}}" container_name
Este enfoque es independiente del sistema operativo.
Esto también me da el ID del contenedor. El ID completo del contenedor, no solo los primeros 12 caracteres truncados.
cowlinator
¡Amo esta! Gracias. 👍
GollyJer
@vijay @RosbergLinhares si proporciona el nombre del contenedor (dado en la NAMEScolumna con docker ps), proporciona el ID del contenedor. Si en su lugar se proporciona el nombre de la imagen (dado en la IMAGEcolumna con docker ps), en su lugar se genera el ID de la imagen.
Wolfson
12
Obtener identificadores de contenedores de contenedores en ejecución:
$docker ps -qf "name=IMAGE_NAME"
-f: Filter output based on conditions provided
-q: Only display numeric container IDs
Obtenga ID de contenedor de todos los contenedores:
$docker ps -aqf "name=IMAGE_NAME"
-a: all containers
Agregue una explicación a su respuesta. Las respuestas que son solo código (o en este caso solo comando) no son útiles para los nuevos usuarios que pueden no entender lo que realmente hace el comando o código. Busque programación de culto de carga para saber por qué esto es malo.
Max Vollmer
0
En mi caso, estaba ejecutando el contenedor Docker de Tensorflow en Ubuntu 20.04: Ejecute su contenedor Docker en una terminal, lo ejecuté con
docker run -it od
Y luego inició otra terminal y corrió a continuación docker pscon sudo:
sudo docker ps
Obtuve con éxito la identificación del contenedor:
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
e4ca1ad20b84 od "/bin/bash" 18 minutes ago
Up 18 minutes unruffled_stonebraker
En realidad, la salida es un poco más conveniente para trabajar que eso. Cada campo tiene 20 caracteres de ancho.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]
docker --list
o similar? ¿Cuál es el comando para crear un nuevo contenedor? etcRespuestas:
En Linux:
O en OS X, Windows:
¿Dónde
containername
está el nombre de su contenedor?Para evitar obtener falsos positivos, como señala @llia Sidorenko, puede usar anclajes de expresiones regulares así:
explicación:
-q
por tranquilidad. salida solo el ID-a
para todos. funciona incluso si su contenedor no se está ejecutando-f
para filtro .^
el nombre del contenedor debe comenzar con esta cadena$
el nombre del contenedor debe terminar con esta cadenafuente
--no-trunc
bandera. entoncesdocker ps --no-trunc -aqf "name=containername"
docker inspect --format="{{.Id}}" imageName
funcionó para mí.Puedes probar esto:
Este enfoque es independiente del sistema operativo.
fuente
NAMES
columna condocker ps
), proporciona el ID del contenedor. Si en su lugar se proporciona el nombre de la imagen (dado en laIMAGE
columna condocker ps
), en su lugar se genera el ID de la imagen.Obtener identificadores de contenedores de contenedores en ejecución:
Obtenga ID de contenedor de todos los contenedores:
fuente
docker ps -fq
no funcionó, perodocker ps -qf
sí (orden de las banderas)El siguiente comando:
Da esta salida:
fuente
Si desea obtener ContainerId completo según el nombre del contenedor, use el siguiente comando
fuente
La imagen de Docker inspecciona ImageName \ ImageId --format = {{'. ConatinerConfig.Hostname'}}
fuente
En mi caso, estaba ejecutando el contenedor Docker de Tensorflow en Ubuntu 20.04: Ejecute su contenedor Docker en una terminal, lo ejecuté con
Y luego inició otra terminal y corrió a continuación
docker ps
con sudo:Obtuve con éxito la identificación del contenedor:
fuente
La forma más sencilla que se me ocurre es analizar la salida de
docker ps
Ejecutemos la última imagen de ubuntu de forma interactiva y conectemos a ella
Si ejecuta
docker ps
en otra terminal, puede ver algo comoDesafortunadamente, analizar este formato no es fácil ya que usan espacios para alinear cosas manualmente
Aquí hay un script que convierte la salida a JSON.
https://gist.github.com/mminer/a08566f13ef687c17b39
En realidad, la salida es un poco más conveniente para trabajar que eso. Cada campo tiene 20 caracteres de ancho.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]
fuente