tag library imagenes hub and docker docker-registry

library - download docker image



¿Cómo compartir mi Docker-Image sin usar el Docker-Hub? (4)

Me pregunto dónde se almacenan exactamente las imágenes de Docker en mi máquina host local. ¿Puedo compartir mi Docker-Image sin usar el Docker-Hub o un Dockerfile pero el "real" Docker-Image? ¿Y qué sucede exactamente cuando "empujo" mi Docker-Image a Docker-Hub?


Basado en este blog , uno podría compartir una imagen de docker sin un registro de docker ejecutando:

docker save --output latestversion-1.0.0.tar dockerregistry/latestversion:1.0.0

Una vez que se haya completado este comando, uno podría copiar la imagen a un servidor e importarla de la siguiente manera:

docker load --input latestversion-1.0.0.tar


El envío de una imagen de la ventana acoplable a un servidor remoto se puede realizar en 3 simples pasos:

  1. A nivel local, guarde la imagen de la ventana acoplable como .tar : docker save -o <path for created tar file> <image name>

  2. Localmente, usa scp para transferir .tar a remoto

  3. En el servidor remoto, cargue la imagen en la ventana acoplable: docker load -i <path to docker image tar file>


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 el comando docker commit de la línea de comandos después de realizar algunos cambios (probablemente a través de la docker run ).

Estas capas se almacenan de manera 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 la ventana acoplable, de forma predeterminada ... a menos que etiquete su imagen con otro prefijo de registro) y se almacena allí. Al empujar, la identificación de la capa se usa para verificar si ya tiene la capa localmente o si necesita descargarse. Puede usar el 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 empujar al registro de hub de docker, sus mejores opciones son:

  • docker save una imagen o docker export un contenedor. Esto dará salida a 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 la docker load o la docker import en un host diferente.

  • Alojar su propio registro privado. - Desactualizado, 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 compartimiento de s3 de su elección), lo que es trivial de configurar. Esta es también una forma interesante de ver lo que sucede cuando se empuja a un registro.

  • Utilice otro registro como quay.io (no lo he intentado personalmente), aunque las preocupaciones que tenga con el concentrador acoplable probablemente también se apliquen aquí.