Exportación e importación de imágenes Docker con comandos CLI
Resumen
Vivimos en una época llena de innovaciones tecnológicas, en especial relacionadas con el desarrollo de software y administración de infraestructura. A menudo encontramos situaciones en las que necesitamos transferir imágenes Docker localmente, sin depender de Docker Hub o limitados por conexiones de red restringidas. Afortunadamente, dos comandos esenciales simplifican esta tarea: Docker Save y Docker Load.
¿Cuándo y por qué utilizar Docker Save para exportar imágenes?
Puede haber ocasiones en las que compartir una imagen Docker a través de redes es complicado o simplemente imposible debido a restricciones organizacionales o limitaciones de ancho de banda. Algunas razones típicas incluyen:
Protocolos de red en organizaciones que impiden la transferencia de imágenes.
Ancho de banda insuficiente o demasiado lento.
Deseo de transferir imágenes utilizando dispositivos externos como memorias USB.
Con el comando docker save, puedes exportar fácilmente una imagen a un archivo, facilitando su traslado físico:
docker save AminEspinosa/link3 > link3.rar
Este comando genera un archivo comprimido con todos los componentes de la imagen de Docker listos para transportar y compartir fácilmente.
¿Qué información incluye el archivo exportado tras utilizar Docker Save?
Al exportar imágenes Docker mediante docker save, el archivo resultante contiene varias estructuras que aseguran mantener un historial preciso de versiones y modificaciones aplicadas previamente:
Un archivo version que indica las diferentes versiones incluidas.
Un archivo manifest.json donde se especifican capas (layers) que representan cambios puntuales realizados a la imagen con anterioridad.
Cada capa identificada representa un punto específico en el tiempo que registra cambios, como nuevas librerías o modificaciones generales, creando así un archivo minuciosamente versátil y completo.
¿Cómo cargar nuevamente una imagen Docker con Docker Load?
Una vez exportada una imagen, cargarla nuevamente en Docker es igual de sencillo. Para importar la imagen con docker load, solo debes ejecutar la siguiente instrucción:
docker load --input link3.rar
Este comando restaurará la imagen empaquetada previamente y la visualizarás fácilmente listada dentro de Docker Desktop o escribiendo en terminal:
docker images
Resulta relevante mencionar que no es obligatorio contar con Docker Desktop ejecutándose en segundo plano para realizar satisfactoriamente esta operación desde la terminal.
Cuéntanos tu experiencia utilizando estos comandos. ¿Has enfrentado situaciones similares con limitaciones de red o transferencia local de imágenes Docker?
Le entendí más al profesor de polera verde que al de camiseta negra 😅
Los gamers SIEMPRE son mejores en todo!!!
export
docker export is used to export the container’s file system into a tar file. it doesn’t export any volumes associated with it.
save
docker save is used to save one or more images into a tar file. Let’s pull the busybox as well and save both images into a tar file.
save and export are both used for sharing tar files. But, save is used for images and can save multiple images into a tar file with all the layers and history. export is used for containers without any history or layers.
Guardar una imagen de Docker
Comando:docker save
Descripción: Permite guardar una o más imágenes a un archivo tar.
Uso: docker save -o <nombre-de-archivo.tar> <nombre-de-imagen>
Ejemplo: docker save -o ubuntu.tar ubuntu:latest
Este comando guarda la imagen de Ubuntu con la etiqueta "latest" en un archivo tar llamado ubuntu.tar.
Recuperar o cargar una imagen de Docker
Comando:docker load
Descripción: Permite cargar una imagen desde un archivo tar.
Uso: docker load -i <nombre-de-archivo.tar>
Ejemplo: docker load -i ubuntu.tar
Este comando carga una imagen desde el archivo ubuntu.tar al sistema local de Docker.
Estos comandos son muy útiles para compartir imágenes entre diferentes máquinas o para hacer backups de tus imágenes locales.
se me presenta este error cuando ejecuto el comando load
archive/tar: invalid tar header
Tuve el mismo problema, lo que hice fue guardarla como tar y al momento de cargargarla (load) ya no tuve problemas, este fue el comando que utilicé: docker save jrs/linktree > linktree.tar
el primer comentario de este curso
aprendiendo bastante 📝📝
Excelente!!
Para los que están usando windows como yo, y les muestra este error.
archive/tar: invalid tar header
Me funcionó con estos archivos.
Hola si alguien presenta dificultar al momento de descargar el archivo linktree.rar en windows.
Yo puse el siguiente comando:
docker save -o linktree.rar seoger/linktree
```docker save -o linktree.rar seoger/linktree
lo puse dos veces solo es una vez y no puedo modificar el comentario :(
funciono
Descargar y cargar imágenes de docker en dispositivos físicos extraíbles, muy impresionante
Bello eh?
El capítulo se centra en la exportación e importación de imágenes Docker utilizando comandos CLI. Aquí están los puntos clave y comandos:
Docker save: Exporta una imagen a un archivo comprimido.
Ejemplo: docker save nombre_imagen > archivo.tar
Docker load: Importa una imagen desde un archivo comprimido.
Ejemplo: docker load --input archivo.tar
Estructura del archivo exportado: Contiene carpetas con versiones y un archivo manifest.json que lista las capas de la imagen.
Estos comandos permiten compartir imágenes sin depender de la red o Docker Hub.
Comparto mis notas sobre esto, quizá sea de utilidad:
El chiste del minuto 4.51 jaja
En el comando docker save aminespinoza/linktree > linktree.rar, no es necesario incluir la etiqueta de la imagen porque docker save exporta la imagen completa con todas sus capas y metadatos. Si tienes una imagen con varias versiones (tags), docker save incluirá toda la información relevante de cada capa, permitiéndote restaurar la imagen en su estado exacto. Al usar docker load, podrás recuperar la imagen con todas sus versiones y cambios, ya que estos están almacenados dentro del archivo comprimido.
Son geniales los cursos de Amin, encuentro que son siempre entretenidos y enseña conceptos difíciles pero lo hace parecer fácil.
Si lo hacen desde mac yo por conveniencia lo hice con .zip en lugar de .rar para descromprimir directo.
yo lo hice con docker export y docker import, para no hacerlo como el profo:
Prueben ejecutando el comando en una terminal bash o de linux y no en powershell
Consulta, en este caso como es un archivo estatico, con un html, no necesitas ningún tipo de configuración de red o más, como usar docker compose me imagino.
🚀 Exportar e Importar Imágenes de Docker sin Internet ni Docker Hub
En un mundo tecnológico repleto de herramientas para el desarrollo y la infraestructura, Docker se ha convertido en un pilar fundamental. Sin embargo, no siempre es posible depender de la red o de Docker Hub para compartir imágenes. En este artículo exploramos cómo exportar e importar imágenes de Docker utilizando comandos básicos, permitiendo trabajar en entornos con limitaciones de red o con protocolos corporativos restrictivos.
🌐 Contexto: cuando la red no es suficiente
Hay situaciones en las que transferir imágenes de Docker directamente no es viable:
Empresas con protocolos de red que bloquean transferencias.
Redes con ancho de banda limitado que hacen la transferencia demasiado lenta.
Casos donde se prefiere un método físico, como un pendrive o disco externo.
Ejemplo práctico: Un desarrollador necesita compartir la imagen aminespinoza/linktree con un compañero sin depender de Docker Hub. La solución es crear un archivo comprimido de la imagen y transferirlo físicamente.
💾 Exportar imágenes con docker save
El comando clave es:
docker save: guarda una imagen completa de Docker en un archivo comprimido.
Ejemplo:
El desarrollador ejecuta:
docker save aminespinoza/linktree > linktree.rar
Esto genera el archivo linktree.rar que contiene todos los componentes de la imagen. Luego, se puede copiar a una memoria USB y compartirlo fácilmente.
🔑 Puntos clave:
El archivo resultante contiene todas las versiones (capas) de la imagen.
Puede moverse como cualquier otro archivo comprimido.
📂 Explorando el archivo exportado
Al descomprimir linktree.rar se descubren múltiples carpetas y archivos internos. Entre los más importantes:
version: indica que dentro del archivo están incluidas distintas versiones de la imagen, representando su historial de cambios.
manifest.json: muestra las layers (capas) de la imagen.
Cada layer.tar corresponde a una modificación (por ejemplo, instalar una librería o añadir una instrucción en el Dockerfile).
👉 Esto significa que el archivo comprimido no solo contiene la imagen final, sino también el historial de cómo se fue construyendo.
📥 Importar imágenes con docker load
Una vez que la imagen exportada está disponible en otro equipo, se utiliza el comando:
docker load --input archivo: carga una imagen a partir de un archivo exportado.
Ejemplo:
docker load --input linktree.rar
Resultados:
Docker reconstruye la imagen a partir del archivo comprimido.
La imagen aparece listada en Docker Desktop o al ejecutar docker images.
🔄 Diferencia entre docker save/load y docker export/import
Aunque la transcripción se centra en save y load, es importante aclarar:
docker save / docker load: se usan para imágenes completas (incluyen historial y capas).
docker export / docker import: se enfocan en contenedores, generan una versión “plana” sin historial de cambios.
Ejemplo hipotético:
Si quieres compartir un contenedor en ejecución tal cual está, usarías docker export.
Si lo que necesitas es la imagen con todo su historial, docker save es la opción correcta.
📝 Conclusión y recomendaciones
Los comandos docker save y docker load permiten independizar el flujo de trabajo de la red y de Docker Hub, abriendo la posibilidad de compartir imágenes en entornos corporativos cerrados o con baja conectividad.
✅ Recomendaciones prácticas:
Usa docker save cuando quieras preservar todo el historial de la imagen.
Prefiere docker load para reconstruir imágenes exportadas en otro sistema.
Considera docker export/docker import si tu interés está en contenedores sin historial.
Siempre verifica el tamaño de la imagen antes de exportarla; optimizar el Dockerfile puede hacer la transferencia más ágil.