Las imágenes de Docker se almacenan como capas del sistema de archivos. Cada comando en el Dockerfile crea una capa. También puede crear capas utilizando docker commit
desde la línea de comandos después de hacer algunos cambios ( docker run
probablemente a través de ).
Estas capas se almacenan de forma predeterminada en /var/lib/docker
. Si bien podría (teóricamente) seleccionar archivos desde allí e instalarlos en un servidor Docker diferente, probablemente sea una mala idea jugar con la representación interna utilizada por Docker.
Cuando empuja su imagen, estas capas se envían al registro (el registro de Docker Hub, por defecto ... a menos que etiquete su imagen con otro prefijo de registro) y se almacenan allí. Al presionar, la identificación de la capa se usa para verificar si ya tiene la capa localmente o si necesita descargarla. Puede usar docker history
para ver qué capas (otras imágenes) se usan (y, en cierta medida, qué comando creó la capa).
En cuanto a las opciones para compartir una imagen sin pasar al registro de Docker Hub, sus mejores opciones son:
docker save
una imagen o docker export
un contenedor Esto generará un archivo tar a la salida estándar, por lo que le gustaría hacer algo como docker save 'dockerizeit/agent' > dk.agent.latest.tar
. Luego puede usar docker load
o docker import
en un host diferente.
Hospede su propio registro privado. - Anticuado, ver comentarios Ver la imagen de registro de la ventana acoplable . Hemos creado un registro respaldado por s3 que puede iniciar y detener según sea necesario (todo el estado se mantiene en el bucket de s3 de su elección) que es trivial de configurar. Esta también es una forma interesante de ver lo que sucede cuando se empuja a un registro
Use otro registro como quay.io (no lo he probado personalmente), aunque cualquier preocupación que tenga con el Docker Hub probablemente se aplicará aquí también.