¿Cómo compartir mi Docker-Image sin usar Docker-Hub?

Resuelto yaquawa asked hace 10 años • 4 respuestas

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 la Docker-HubDocker Dockerfile-Image 'real'? ¿Y qué sucede exactamente cuando 'empujo' mi Docker-Image a Docker-Hub?

yaquawa avatar Jun 30 '14 11:06 yaquawa
Aceptado

Las imágenes de Docker se almacenan como capas del sistema de archivos. Cada comando en Dockerfile crea una capa. También puede crear capas usando docker commitdesde la línea de comando después de realizar algunos cambios (a través de docker runprobablemente).

Estas capas se almacenan de forma predeterminada en /var/lib/docker. Si bien (teóricamente) podría 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 envía su imagen, estas capas se envían al registro (el registro de Docker Hub, de forma predeterminada... a menos que etiquete su imagen con otro prefijo de registro) y se almacenan allí. Al extraer, la identificación de la capa se usa para verificar si ya tiene la capa localmente o si es necesario descargarla. Puede utilizar docker historypara echar un vistazo a qué capas (otras imágenes) se utilizan (y, hasta cierto punto, qué comando creó la capa).

En cuanto a las opciones para compartir una imagen sin tener que acceder al registro de Docker Hub, sus mejores opciones son:

  • docker saveuna imagen o docker exportun contenedor. Esto generará un archivo tar en la salida estándar, por lo que querrás hacer algo como docker save 'dockerizeit/agent' > dk.agent.latest.tar. Luego puedes usar docker loado docker importen un host diferente.

  • Aloje su propio registro privado. - Desactualizado, ver comentarios Ver la imagen de registro de Docker . Hemos creado un registro respaldado por s3 que puede iniciar y detener según sea necesario (todo el estado se mantiene en el depósito de s3 de su elección), lo cual es trivial de configurar. Esta también es una forma interesante de observar lo que sucede cuando se ingresa a un registro.

  • Utilice otro registro como quay.io (no lo he probado personalmente), aunque cualquier inquietud que tenga con Docker Hub probablemente también se aplicará aquí.

Abel Muiño avatar Jun 30 '2014 07:06 Abel Muiño

Según este blog , se 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, se podría copiar la imagen a un servidor e importarla de la siguiente manera:

docker load --input latestversion-1.0.0.tar
030 avatar Feb 18 '2018 21:02 030