Si creó una imagen de Docker en su máquina de desarrollo y desea implementarla en un servidor, puede usar un registro de Docker, pero Docker también tiene herramientas para guardar imágenes en archivos y cargarlas en un servidor diferente.
No necesita un registro de contenedores
Por lo general, para transferir una compilación de un contenedor (llamada imagen) a un servidor remoto, utiliza un registro de contenedor de Docker. Este es, con mucho, el mejor método:es un único punto de autoridad, lo que facilita la distribución de actualizaciones en varios servidores. Esto tampoco requiere que haga público el contenedor; hay muchos registros de contenedores privados excelentes, como GCR de Google y ECS de AWS. Docker Hub incluso admite repositorios privados. Si simplemente le preocupa la privacidad, cambie a un registro privado y continúe usando docker push
y docker pull
.
Sin embargo, para aquellos que buscan hacerlo a la antigua, la CLI de Docker contiene algunas herramientas para guardar imágenes en archivos y cargarlas en un servidor remoto.
Para guardar una imagen, puede usar docker save
, especificando un archivo de salida y, a continuación, especifique un nombre de imagen y una etiqueta:
docker save -o ./savedimage imagename:tag
Si no especifica una etiqueta, Docker empaquetará todas las etiquetas.
Esto serializará y guardará una copia de la imagen en el archivo de salida. La imagen se almacena como un archivo tar. Si desea guardarlo como tar.gz
, puede omitir -o
marcar y canalizar la salida a gzip
:
docker save imagename:tag | gzip > savedimage.tar.gz
Luego puede tomar este archivo y scp
o copia FTP al servidor de destino. Una vez que esté allí, puede usar docker load
para importarlo de nuevo:
docker load -i savedimage
Esto hará que la imagen esté disponible en el sistema de destino como si hubiera ejecutado docker build . -t imagename
. Puede usarlo como una imagen creada localmente con docker container run
:
docker container run imagename