run - dockers container download
Obtener la identificación del contenedor de Docker del nombre del contenedor (5)
-
Obtener ID de contenedor de contenedores en ejecución ::
$docker ps -qf "name=IMAGE_NAME" -f: Filter output based on conditions provided -q: Only display numeric container IDs
-
Obtener ID de contenedor de todos los contenedores ::
$docker ps -aqf "name=IMAGE_NAME" -a: all containers
¿Cuál es el comando para obtener la ID del contenedor de Docker del nombre del contenedor?
En Linux:
sudo docker ps -aqf "name=containername"
O en OS X:
docker ps -aqf "name=containername"
donde
containername
es el nombre de tu contenedor.
Para evitar obtener falsos positivos, como señala @llia Sidorenko, puede usar anclas regex de esta manera:
docker ps -aqf "name=^containername$"
explicación:
-
-q
para callar. generar solo la ID -
-a
para todos. funciona incluso si su contenedor no está funcionando -
-f
para filter . -
^
nombre del contenedor debe comenzar con esta cadena -
$
nombre del contenedor$
debe terminar con esta cadena
La forma más simple en la que puedo pensar es analizar la salida de
docker ps
Ejecutemos la última imagen de ubuntu de forma interactiva y conectemos a ella
docker run -it ubuntu /bin/bash
Si ejecuta
docker ps
en otra terminal, puede ver algo como
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8fddbcbb101c ubuntu:latest "/bin/bash" 10 minutes ago Up 10 minutes gloomy_pasteur
Desafortunadamente, analizar este formato no es fácil ya que usan espacios para alinear cosas manualmente
$ sudo docker ps | sed -e ''s/ /@/g''
CONTAINER@ID@@@@@@@@IMAGE@@@@@@@@@@@@@@@COMMAND@@@@@@@@@@@@@CREATED@@@@@@@@@@@@@STATUS@@@@@@@@@@@@@@PORTS@@@@@@@@@@@@@@@NAMES
8fddbcbb101c@@@@@@@@ubuntu:latest@@@@@@@"/bin/bash"@@@@@@@@@13@minutes@ago@@@@@@Up@13@minutes@@@@@@@@@@@@@@@@@@@@@@@@@@@gloomy_pasteur@@@@@@
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]]
Puedes probar esto:
docker inspect --format="{{.Id}}" container_name
Este enfoque es independiente del sistema operativo.
Si desea obtener ContainerId completo basado en el nombre del contenedor, utilice el siguiente comando
docker ps --no-trunc -aqf name=containername