Al escribir un script bash que inicia un contenedor docker, es útil consultar el contenedor docker iniciado. ¿Cómo obtiene la identificación del contenedor específico de un contenedor acoplable cuando lo inicia?
PD Sé que puedo usar --name para nombrar el contenedor, que puedo usar para filtrar la lista de contenedores usando docker ps -aqf "name=containername" , pero esto fallará si alguna vez inicio el script dos veces. Y luego está la posibilidad de conflictos de nombres. Además, ¿cuál es el punto de las identificaciones de contenedores si no puedes usarlas?
Cuando inicia un contenedor separado, devuelve el ID del contenedor. p.ej:
$ docker run -d ubuntu:18.04 71329cf6a02d89cf5f211072dd37716fe212787315ce4503eaee722da6ddf18fEn bash, puede definir una nueva variable a partir de la salida de esta manera:
CID=$(docker run -d ubuntu:18.04)Luego, más tarde puede usar esta variable para referirse a su contenedor de esta manera:
docker stop $CID docker rm $CIDEn la documentación de la ventana docker run en "capture container id" , recomiendan usar el indicador --cidfile para este propósito.
--cidfile toma un nombre de archivo como argumento y escribirá la ID larga del contenedor en esa ubicación. P.ej,
docker run --cidfile /tmp/hello-world.cid hello-world && cat /tmp/hello-world.cidEsto es útil cuando no desea ejecutar la imagen en un estado separado, pero aún desea acceder a la ID.