¿Cómo encontrar el nombre/hash de la ventana acoplable para poder exportarlo?

¿Cómo encontrar el nombre/hash de la ventana acoplable para poder exportarlo?

He creado un contenedor acoplable a partir de un dockerscript, por ejemplo

user@servername:~$ echo "FROM ubuntu:latest" > dscript.txt
user@servername:~$ 
user@servername:~$ cat dscript.txt 
FROM ubuntu:latest
user@servername:~$ docker build -t ubu.image - < dscript.txt
Sending build context to Docker daemon  2.048kB
Step 1/1 : FROM ubuntu:latest
 ---> 0ef2e08ed3fa
Successfully built 0ef2e08ed3fa

Y puedo ejecutarlo usando el nombre de la imagen que le he dado, es decir ubu.image:

user@servername:~$ docker run -it ubu.image
root@c00379445b9d:/# exit
exit
user@servername:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
user@servername:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Pero para exportarlo tengo que usar el hash de confirmación:

user@servername:~$ docker export c00379445b9d > ubu.image.tar

Intenté usar el nombre del contenedor en lugar del hash pero arroja un error:

$ docker export ubu.image > ubu.image.tar
Error response from daemon: No such container: ubu.image

La pregunta es:

  1. ¿Hay alguna manera de averiguar el último hash de confirmación del contenedor que se necesita para exportar el contenedor como un .tararchivo?

  2. Sin el último hash de confirmación, ¿es posible exportar el contenedor como .tararchivo? ¿Es así, cómo?

Respuesta1

El ubu.imageque usó es el nombre de la imagen, no el nombre del contenedor, por lo que no puede usarlo como argumento para docker export.

Si conoce el nombre del contenedor, puede usarlo directamente para exportar:

docker export <container name>

o obteniendo su hash:

docker ps -aqf 'name=<container name>'

Sin el nombre del contenedor, puede obtener toda la lista de contenedores con el nombre de la imagen proporcionado:

docker ps -aqf 'ancestor=<image name>'

Tenga en cuenta que devolverá todos los contenedores creados a partir de la imagen proporcionada.


Un mejor enfoque es configurar su propio contenedor label, de modo que pueda usarlo para filtrar el contenedor:

$ docker run -l foo=bar alpine sh -c 'echo 1'
1
$ docker run -l foo=baz alpine sh -c 'echo 1'
1
$ docker ps -aqf 'label=foo=bar'
d43aa7d7c854

información relacionada