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:
A nivel local, guarde la imagen de la ventana acoplable como .tar :
docker save -o <path for created tar file> <image name>
Localmente, usa scp para transferir .tar a remoto
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 odocker export
un contenedor. Esto dará salida a un archivo tar a la salida estándar, por lo que le gustaría hacer algo comodocker save ''dockerizeit/agent'' > dk.agent.latest.tar
. Luego puede usar ladocker load
o ladocker 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í.
Si no desea utilizar el Docker Hub, puede alojar su propio repositorio de Docker en Artifactory by JFrog:
https://www.jfrog.com/confluence/display/RTF/Docker+Repositories
que luego se ejecutará en su propio servidor (s).
Otros proveedores de hosting están disponibles, por ejemplo, CoreOS:
http://www.theregister.co.uk/2014/10/30/coreos_enterprise_registry/
que compró quay.io