GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo compartir imágenes de Docker con otros

¿Construyó una imagen de Docker que necesita compartir con un colega? Así es como puede distribuir una imagen sin que el destinatario necesite ejecutar docker build ellos mismos.

Compartir una imagen prediseñada en lugar de un Dockerfile le permite estar seguro de que su colega está ejecutando exactamente el mismo software. Volver a ejecutar la compilación podría dar como resultado un entorno sutilmente diferente. Tienes dos opciones para distribuir tu imagen, dependiendo de la situación.

Usar un registro de Docker

La forma más sencilla de compartir una imagen de Docker es subirla a un registro de Docker. Esta funcionalidad está totalmente integrada en la CLI de Docker. No necesita realizar transferencias de archivos manuales cuando utiliza este método.

El registro predeterminado es Docker Hub. Esto le permite compartir imágenes públicamente y también le brinda un repositorio privado. Cree una cuenta en Docker Hub, luego ejecute docker login en tu terminal. Proporcione los detalles de su cuenta para conectar la CLI de Docker a su cuenta.

A continuación, cree su imagen como de costumbre, usando docker build . Agregue una etiqueta que comience con su nombre de usuario de Docker Hub:

docker build -t my-account/my-image:latest .

Luego usa el docker push comando para subir la imagen etiquetada a Docker Hub:

docker push my-account/my-image:latest

Ahora su imagen está almacenada de forma segura en Docker Hub. Otros usuarios podrán bajarlo usando docker pull o docker run comandos ¡Terminaste de compartir tu imagen!

Para el uso en el mundo real, Docker Hub podría no ser suficiente. Si forma parte de un equipo de desarrollo, probablemente querrá mantener las imágenes en su propio servidor, en lugar del registro público de Hub. En su lugar, puede crear un servidor de registro autohospedado para obtener almacenamiento privado que sea totalmente compatible con docker push y docker pull comandos Esto le permite compartir imágenes fácilmente con cualquier persona que pueda acceder a su registro privado.

Exportación de imágenes

Si usar un registro no es una opción, puede exportar manualmente los archivos de imágenes de Docker. Esta funcionalidad también está integrada en la CLI de Docker. Cree su imagen y luego use docker save comando para obtener un tar archivo de su contenido:

docker save my-image:latest > my-image.tar

La exportación puede tardar unos minutos en completarse. Docker incluirá todo lo necesario para recrear la imagen:esas son todas las capas en su Dockerfile , así como las capas heredadas de su imagen base. El archivo también contendrá información sobre las etiquetas asociadas con la imagen.

Como la salida es un simple tar archivo, ahora eres libre de distribuirlo de la forma que elijas. Los archivos pueden ser bastante grandes, por lo que normalmente lo mejor es cargarlos en un servidor de archivos o en un proveedor de almacenamiento en la nube.

Para usar una imagen exportada, ejecute docker load dominio. Esto acepta un tar archivo producido por docker save como flujo de entrada. Docker cargará el contenido del archivo y lo agregará a su lista de imágenes locales.

docker load < my-image.tar

Ahora verá la imagen recién importada en sus docker images producción. Está listo para iniciar un nuevo contenedor con docker run .

Exportar e importar imágenes agrega algunos pasos adicionales sobre el uso de un registro de Docker. Deberá transferir manualmente el archivo entre los clientes. En consecuencia, este enfoque es menos adecuado para el uso frecuente, aunque también tiene sus ventajas.

Convertir imágenes a un tar El archivo puede ser útil para el almacenamiento a largo plazo. Si se está quedando sin espacio en su servidor de registro, archivando imágenes antiguas y cargando sus tars hacer una copia de seguridad del almacenamiento de archivos podría ser una forma rentable de recuperar algo de capacidad. Todavía podrá recuperar la imagen si alguna vez lo necesita en el futuro.

¿Qué pasa con la "exportación de docker"?

Docker tiene otro comando relacionado con la exportación, docker export . Esto no debe confundirse con docker save . Mientras que save funciona con imágenes, export en realidad gestiona contenedores individuales .

docker export producirá un tar archivo del sistema de archivos de un contenedor. Esto se puede usar para restaurar una réplica del contenedor en otra máquina. Si inspecciona el contenido del archivo, verá que es solo un sistema de archivos raíz normal de Linux, con directorios como /bin , /etc y /usr .

docker export my-container > my-container.tar

docker export es útil si desea tomar una instantánea de un contenedor para su posterior restauración. Sin embargo, los archivos de contenedores no se importan de la forma que cabría esperar. Como un contenedor representa un entorno en vivo y en ejecución, no puede "importarlo" directamente. En su lugar, la importación de un archivo contenedor construye un nuevo imagen.

docker import my-container.tar my-image:latest

En este ejemplo, Docker tomará el sistema de archivos en my-container.tar y construye automáticamente una nueva imagen llamada my-image:latest . Tendrá el mismo sistema de archivos pero no la misma imagen base o configuración de Docker que el contenedor original que exportó.

RELACIONADO: Cómo comenzar con el nuevo registro de contenedores Docker de Github

Resumen

Docker facilita compartir imágenes de aplicaciones y entornos de desarrollo con sus colaboradores. Por lo general, es mejor enviar imágenes a un repositorio centralizado del que todos los demás puedan extraer. En algunos escenarios, puede tener más sentido exportar una imagen a un archivo que distribuya manualmente.

Docker también le permite exportar el sistema de archivos de un contenedor para su posterior restauración en una imagen. Tenga cuidado al usar esto, ya que no es una reconstrucción exacta y no se incluyen todos los datos del sistema de archivos. Los volúmenes montados en el contenedor original no se incluirán en el archivo del sistema de archivos, por lo que debe tomar medidas para hacer una copia de seguridad de estos por separado.


Docker
  1. Cómo mover imágenes de Docker entre hosts

  2. Cómo instalar Jenkins con Docker

  3. Cómo modificar imágenes de Docker

  4. Cómo crear y configurar automáticamente imágenes Docker personalizadas con Dockerfile - Parte 3

  5. ¿Cómo usar imágenes acoplables locales con Minikube?

Cómo actualizar las imágenes de Docker a la última versión

Mantenga sus imágenes de Docker manejables con Docker Image Prune

Cómo usar Docker Commit para cambiar imágenes de contenedores

Cómo crear una imagen Docker personalizada con Dockerfile

Compartir imágenes de Docker en Docker Hub

Cómo listar/buscar/extraer imágenes de la ventana acoplable en Linux