Tema:
Exportar, importar y administrar imágenes de contenedores Localmente
Introducción
En el mundo de los contenedores, las imágenes representan la base sobre la cual se construyen y ejecutan las aplicaciones. Comprender cómo exportar, importar y administrar estas imágenes es esencial para garantizar la portabilidad, consistencia y eficiencia en el desarrollo y despliegue de software. Este proceso permite mover imágenes entre entornos, realizar copias de seguridad y garantizar que las aplicaciones puedan ser reconstruidas o compartidas de manera confiable.
La capacidad de exportar e importar imágenes es particularmente útil en escenarios donde los entornos no tienen acceso directo a registros externos, cuando se desea versionar imágenes para proyectos específicos o al trabajar en entornos de red restringidos. Administrar estas imágenes, además, implica asegurarse de que estén optimizadas, seguras y disponibles para los desarrolladores y equipos operativos, maximizando así la eficiencia en los flujos de trabajo.
Objetivo
Objetivo General:
- Capacitar a los participantes en el manejo eficiente de imágenes de contenedores, enseñándoles a exportar, importar y administrar imágenes de manera práctica y estratégica. Esto incluye comprender los conceptos clave detrás del almacenamiento, la transferencia y la gestión de imágenes

La presente guía consiste en utilizar las herramientas proporcionadas por Docker CE para Exportar, Importar y Gestionar Imágenes de Contenedores.
Inicio de laboratorio
-
Ingresar al servidor qué contiene al ambiente de laboratorio con las credenciales proporcionadas
-
Realizar un Commit en un container con nuevas configuraciones
docker run --name original-container ubuntu:12.04 datedocker inspect -f "{{ .Config.Env }}" original-containerdocker commit --change "ENV DEBUG=true" original-container repository/testimage:version3docker run --name new-container repository/testimage:version3 datedocker inspect -f "{{ .Config.Env }}" new-container -
Llevar a cabo un Commit para un container con nuevas instrucciones CMD y EXPOSE. Inicie un nuevo contenedor con un SHELL habilitado para ejecutar comandos y realizar las modificaciones necesarias
docker run -it --name primary-container ubuntu bashapt-get updateapt-get install apache2echo "Docker Commit Test" > /var/www/html/index.htmlcat /var/www/html/index.htmlapachectl -DFOREGROUND -
Abrir una nueva terminal SSH y ejecutar un Commit del contenedor anterior, modificando las instrucciones CMD y EXPOSE:
docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' \ -c "EXPOSE 80" primary-container \ docker.io/your_user_name/testimage:version4 -
En la misma terminal abierta anteriormente, inicie un contenedor con la nueva imágen creada
docker run -d --name second-container -p 30080:80 \ docker.io/your_user_name/testimage:version4 -
Abra un navegador web y verifique la ejecución del servicio web de Apache ejecutándose en un contenedor creado a partir de la imágen creada de un Commit:
http://YOUR-FQDN:30080/ -
Detenga todos los contenedores en ejecución:
docker stop $(docker ps -qa) -
Elimine todos los contenedores en ejecución:
docker rm $(docker ps -qa) -
Realizar una conexión y login a Image Registry de Docker Hub
sudo docker login student@student-0-aio:~> sudo docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: your_user_name Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded -
Realice una carga de la imágen de contenedor creada a partir del Commit hacia Docker Hub
docker push docker.io/your_user_name/testimage:version4 -
Ingresar desde un navegador web al Image Registry Docker Hub con su cuenta de usuario y verificar la imagen subida. Dar Click en el Link: Repositories
-
Detener todos los contenedores creados en el HOST
docker stop $(docker ps -qa) -
Eliminar todos los contenedores creados en el HOST
docker rm $(docker ps -qa) -
Eliminar todas las imágenes de contenedor existentes en el HOST
docker image prune -a -
Listar las imágenes de contenedor existentes en el HOST
docker images -
Descarge la imágen de contenedor desde Docker Hub
docker pull docker.io/your_user_name/testimage:version4 -
Genere un archivo como respaldo de una imágen de contenedor
docker save -o image-backup.tar docker.io/your_user_name/testimage:version4 -
Genere un archivo como respaldo de una imágen de contenedor y además comprimala con GZIP
docker save docker.io/your_user_name/testimage:version4 | gzip > testimage-version4.tar.gz -
Liste los archivos creados anteriormente que contienen la imagen de contenedor
ls -ltr -
Listar las imágenes de contenedor existentes en el HOST
docker images -
Eliminar todas las imágenes de contenedor existentes en el HOST
docker image prune -a -
Listar las imágenes de contenedor existentes en el HOST
docker images -
Cargar desde un archivo una imégen de contenedor
docker load -i image-backup.tar -
Listar las imágenes de contenedor existentes en el HOST
docker images
Limpieza del ambiente
Eliminar todas las imágenes de contenedores
docker image prune -a
Eliminat todos los archivos creados
rm -f image-backup.tar testimage-version4.tar.gz