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

Cómo usar Docker Guardar imagen y exportar para compartir

Si es nuevo en Docker, es posible que aún no descubra cómo compartir contenedores e imágenes con otros desarrolladores o máquinas. Pero, ¿es posible compartir contenedores? ¡Sí! Deje que docker save command comando de imagen y docker export ¡el comando de imagen hace el truco!

En este tutorial, aprenderá cómo guardar y exportar contenedores e imágenes para compartir mediante la ejecución de comandos de Docker.

¿Listo? ¡Empecemos!

Requisitos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de tener lo siguiente:

  • En este tutorial se usa Docker Desktop o Engine instalado como versión 20.10.7.
  • Cualquier sistema operativo compatible con Docker, Ubuntu se usa en este tutorial.

Creación de una aplicación Docker base

Antes de pasar a exportar o guardar contenedores e imágenes de Docker, primero debe crear una aplicación que usará para compartir. Creará una solución aritmética básica como una aplicación Docker de muestra a través de un entorno de línea de comandos.

1. Cree un archivo para su proyecto llamado Dockerfile y pegue el código siguiente en el Dockerfile recién creado .

El siguiente código realiza una operación aritmética básica que da como resultado un valor de 10.

# busybox provides Unix utilities in a single executable file, 
# which enables you to do some arithmetic.
FROM busybox
# Performs a basic arithmetic operation that results in a value of 10.
CMD echo $(((20*5)/10))

2. A continuación, abra su terminal y ejecute docker build siguiente comando para compilar la aplicación denominada (arithmetic ) en la ubicación de trabajo (. ).

docker build --tag arithmetic .

Si está utilizando Linux, es posible que deba anteponer el comando sudo para evitar obtener un error de "permiso denegado", como este:sudo docker build --tag arithmetic . Agregando el sudo comando eleva el comando como administrador.

3. Ejecute el siguiente comando para ejecutar la aplicación Docker que creó (arithmetic ). La ejecución de la aplicación Docker también crea un contenedor para su aplicación automáticamente.

docker run arithmetic

Exportación de contenedores Docker

Ahora que tiene una aplicación base de Docker, es hora de explicar cómo exportar un contenedor de Docker. La creación de una aplicación enorme lleva mucho tiempo y puede ser un lastre si solo desea compartir el contenedor con su equipo. Entonces, ¿hay una forma más rápida de compartir el contenedor? ¡Sí!

En lugar de compilar la aplicación directamente desde un Dockerfile, exporte el contenedor Docker.

1. Ejecute el docker import comando a continuación para enumerar todos (ls --all ) containers disponible en su máquina. Anote el CONTAINER ID del contenedor que desea compartir, ya que lo necesitará para exportar el contenedor en el siguiente paso.

Tenga en cuenta que solo puede exportar contenedores, no imágenes.

docker container ls --all

2. A continuación, ejecute el siguiente comando para export el contenedor Docker de su elección (container-id ). Reemplazar container-id con el ID del contenedor que anotó en el paso uno.

Al exportar, guarda el sistema de archivos del contenedor en un .tar archivo (arithmetic.tar ).

docker export container-id > arithmetic.tar

3. Finalmente, revise la carpeta de su proyecto en su administrador de archivos y verá que un nuevo .tar se ha creado un archivo (arithmetic.tar ). Dado que ha exportado el contenedor a un .tar archivo, ahora puede compartirlo con cualquier persona.

Importación de contenedores Docker

En lugar de exportar, tal vez necesite importar un contenedor Docker que un compañero de equipo compartió con usted. Si es así, la importación docker import comando es lo que necesitas. La docker import El comando toma el sistema de archivos exportado y lo convierte en un sistema de archivos de imagen que puede ejecutar en su máquina.

1. Ejecute el siguiente docker import comando para import un contenedor (arithmetic.tar ) y convertirlo en una imagen. Al importar, debe adjuntar una etiqueta (latest ) y asigne un nombre a la imagen (put_any_name_here ), Como se muestra abajo.

docker import arithmetic.tar put_any_name_here:latest

2. A continuación, ejecute el siguiente comando para enumerar todas las imágenes de Docker existentes, de modo que pueda verificar si existe una nueva imagen.

docker images

A continuación, puede ver que existe una nueva imagen de Docker.

3. Ahora ejecuta docker run comando a continuación para abrir el shell (sh ) para la imagen importada. El contenedor se ejecuta de forma interactiva y se adjunta a su terminal (-i y -t banderas).

 docker run -i -t put_any_name_here:latest sh

Puede saber por el mensaje a continuación (/ #), ahora está en el caparazón de la imagen importada.

4. Finalmente, ejecute el siguiente comando para ver si la imagen funciona como se esperaba.

echo $(((20*5)/10))

Si la imagen funciona, obtendrás un resultado de 10 , Como se muestra abajo.

Si intenta ejecutar la imagen directamente, obtendrá un error, como se muestra a continuación, ya que la imagen importada es una imagen del sistema de archivos.

Guardar imágenes a través de Docker Guardar imagen

Quizás desee guardar una imagen de Docker en lugar de un contenedor. Si es así, ve con docker save command comando de imagen en su lugar. A diferencia de la exportación docker import comando, la ventana acoplable docker save command El comando permite guardar una o más imágenes en un archivo tar directamente y compartirlo con cualquiera.

Tenga en cuenta que solo puede guardar y cargar imágenes de Docker, no contenedores.

  1. Ejecute el siguiente comando para guardar una imagen de Docker (aritmética) en su .tar preferido archivo (arm_image.tar ). Ahora puede compartir el .tar archivar con otros desarrolladores para que puedan cargar la imagen.
docker save arithmetic > arm_image.tar

2. Ahora, ejecute el siguiente comando para crear un directorio con el nombre de su elección (mkdir arm ). Pero para esta demostración, el directorio se llama arm . Luego, el comando extrae la imagen de .tar archivo (-xf arm_image.tar ) al nuevo directorio (arm ).

Extrayendo el contenido del .tar archivo le permite confirmar si la imagen que guardó en el .tar el archivo existe.

mkdir arm && tar -xf arm_image.tar -C arm

3. Finalmente, ejecuta el tree comando a continuación para ver el árbol de directorios de la imagen que extrajo en el ~/arm directorio. tree ~/arm

A continuación, puede ver los archivos y subdirectorios dentro del directorio donde extrajo la imagen de Docker.

Si planea compartir su imagen de Docker en Docker hub, la mejor opción es ejecutar docker save command dominio. ¿Por qué? Con el comando docker save command , esencialmente está guardando la imagen exactamente como se supone que debe ejecutarse. Además, solo puede publicar imágenes en Docker hub, así que definitivamente, el docker export command no es una buena opción.

Cargando imágenes acoplables

Suponiendo que ya guardó una imagen para hacer una copia de seguridad o compartirla, ¿cómo la cargaría en una máquina? No te preocupes, la docker load comando puede ayudar. La docker load El comando le permite cargar una imagen o un repositorio en su máquina, restaurando tanto las imágenes como las etiquetas.

Para ver mejor cómo se carga el docker import funciona, elimine todas las imágenes de Docker que creó anteriormente.

1. Ejecute el siguiente comando para enumerar todas las images de Docker en tu máquina.

docker images

A continuación, puede ver que hay dos imágenes disponibles. Anota el ID DE IMAGEN de cada una de las imágenes. ya que eliminará esas imágenes en el siguiente paso.

2. Ejecute el siguiente comando para eliminar (rm ) Imágenes de Docker por los ID de imagen que especifique. Reemplazar imageID1 y imageID2 con los ID de imagen que anotó en el paso uno.

docker image rm imageID1 imageID2

3. Ahora, ejecuta docker load Comando a continuación para cargar una imagen desde un .tar archivo (arm_image.tar ).

docker load < arm_image.tar

4. Vuelva a ejecutar las docker images comando como lo hizo en el paso uno para enumerar todas las imágenes disponibles en su máquina. docker images

docker images

A continuación, puede ver la imagen recién cargada.

5. Finalmente, ejecute el siguiente comando para ejecutar y probar si la imagen funciona.

docker run arithmetic

Observe que el comando devolvió un valor de 10, lo que indica que la imagen cargada funciona.

Conclusión

A lo largo de este tutorial, ha aprendido a exportar e importar contenedores, así como a cargar y guardar imágenes. Ahora debería tener un conocimiento básico sobre cómo convertir sus contenedores e imágenes guardadas de Docker en un formato que se pueda compartir, como un archivo TAR.

En algún momento, deberá compartir su imagen o contenedor de Docker. Ahora, ¿cómo planea incorporar este nuevo conocimiento cuando trabaje con contenedores e imágenes de Docker, tal vez un sistema de respaldo?


Docker
  1. Cómo exportar e importar contenedores Docker

  2. Cómo usar un Dockerfile para crear una imagen de Docker

  3. Cómo y por qué usar un host Docker remoto

  4. Cómo crear una imagen de Docker a partir de un contenedor y un archivo Docker

  5. Cómo hacer una copia de seguridad y restaurar contenedores Docker

¿Qué es Docker Compose y cómo se usa?

Cómo usar Docker Cp para copiar archivos entre el host y los contenedores

Cómo crear una imagen de Docker desde un contenedor en ejecución

Cómo implementar y administrar un contenedor Docker MongoDB

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

Cómo instalar y usar Docker en Ubuntu 20.04