Skip to content

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

Docker

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

  1. Ingresar al servidor qué contiene al ambiente de laboratorio con las credenciales proporcionadas

  2. Realizar un Commit en un container con nuevas configuraciones

    docker run --name original-container ubuntu:12.04 date
    
    docker inspect -f "{{ .Config.Env }}" original-container
    
    docker commit --change "ENV DEBUG=true" original-container  repository/testimage:version3
    
    docker run --name new-container repository/testimage:version3 date
    
    docker inspect -f "{{ .Config.Env }}" new-container
    

  3. 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 bash
    
    apt-get update
    
    apt-get install apache2
    
    echo "Docker Commit Test" > /var/www/html/index.html
    
    cat /var/www/html/index.html
    
    apachectl -DFOREGROUND
    

  4. 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
    

  5. 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
    

  6. 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/
    

  7. Detenga todos los contenedores en ejecución:

    docker stop $(docker ps -qa)
    

  8. Elimine todos los contenedores en ejecución:

    docker rm $(docker ps -qa)
    

  9. 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
    

  10. 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
    

  11. 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

  12. Detener todos los contenedores creados en el HOST

    docker stop $(docker ps -qa)
    

  13. Eliminar todos los contenedores creados en el HOST

    docker rm $(docker ps -qa)
    

  14. Eliminar todas las imágenes de contenedor existentes en el HOST

    docker image prune -a
    

  15. Listar las imágenes de contenedor existentes en el HOST

    docker images
    

  16. Descarge la imágen de contenedor desde Docker Hub

    docker pull docker.io/your_user_name/testimage:version4
    

  17. Genere un archivo como respaldo de una imágen de contenedor

    docker save -o image-backup.tar docker.io/your_user_name/testimage:version4
    

  18. 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
    

  19. Liste los archivos creados anteriormente que contienen la imagen de contenedor

    ls -ltr
    

  20. Listar las imágenes de contenedor existentes en el HOST

    docker images
    

  21. Eliminar todas las imágenes de contenedor existentes en el HOST

    docker image prune -a
    

  22. Listar las imágenes de contenedor existentes en el HOST

    docker images
    

  23. Cargar desde un archivo una imégen de contenedor

    docker load -i image-backup.tar
    

  24. 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