Skip to content

Docker tags y versionamento

Docker

Cuando se crea una imagen de Docker, debemos asignar una o más etiquetas a la imagen creada. Si utilizamos el motor de compilación de Docker, ejecutaría un comando como: docker build -t mytag . para compilar la imagen, seguido de docker push mytag para enviar la imagen a algún registro de imágenes.

No es buena práctica dejar unicamente que la etiqueta de la imagen termine con "latest", lo cual tiene numerosos problemas. En este curso revisaremos las estrategias que se puede usar para etiquetar las imágenes, específicamente para la última sección de la etiqueta, que especifica la versión de la imagen.

Objetivo

  • Crear y gestionar etiquetas o tags para imágenes de contenedores.

Inicio de laboratorio

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

  2. Crear un directorio de trabajo para construir una nueva imágen de contenedor

    mkdir docker-build
    

  3. Moverse al directorio creado anteriormente

    cd docker-build
    

  4. Crear un nuevo archivo llamado Dockerfile, con el contenido que se muestra a continuación

    vi Dockerfile
    
    FROM httpd:2.4
    

  5. Construir la imágen de contenedor con las diferentes TAGs a utilizar, reemplazar your_user_name por su usuario de Docker Hub

    sudo docker build -t your_user_name/apache-img-demo:v1.0.5 .
    sudo docker build -t your_user_name/apache-img-demo:v1.0 .
    sudo docker build -t your_user_name/apache-img-demo:v1 .
    sudo docker tag your_user_name/apache-img-demo:v1 your_user_name/apache-img-demo:latest
    

  6. Realizar Login al Docker Hub

    sudo docker login
    

  7. Subir la imágen de conteenedor creada anteriormente con todos sus TAGs, reemplazar your_user_name por su usuario de Docker Hub

    sudo docker push your_user_name/apache-img-demo:v1.0.5
    sudo docker push your_user_name/apache-img-demo:v1.0
    sudo docker push your_user_name/apache-img-demo:v1
    sudo docker push your_user_name/apache-img-demo:latest
    

  8. Entrar a Docker Hub por medio del navegador web y verificar el nuevo repositorio creado, revisar la información del Nombre, Tags y Digest.

  9. Ejecutar el siguiente comando para detener y eliminar todos los contenedores, además eliminar todas la imágenes existentes localmente

    sudo docker stop $(docker ps -qa) ; sudo docker rm $(docker ps -qa) ; sudo docker image prune -a
    

  10. Crear un nuevo contenedor utilizando un TAG de los creados anteriormente, reemplazar your_user_name por su usuario de Docker Hub

    sudo docker run -d --name apache-v1 -p 8080:80 your_user_name/apache-img-demo:latest
    

  11. Verificar el servicio web del contenedor creado anteriormente

    curl http://localhost:8080
    

  12. Ejecutar el siguiente comando para detener y eliminar todos los contenedores, además eliminar todas la imágenes existentes localmente

    sudo docker stop $(docker ps -qa) ; sudo docker rm $(docker ps -qa) ; sudo docker image prune -a
    

  13. Modificar el archivo llamado Dockerfile, con el contenido que se muestra a continuación

    vi Dockerfile
    
    FROM nginx
    

  14. Construir la imágen de contenedor con las diferentes TAGs a utilizar, reemplazar your_user_name por su usuario de Docker Hub

    sudo docker build -t your_user_name/apache-img-demo:v2.0.5 .
    sudo docker build -t your_user_name/apache-img-demo:v2.0 .
    sudo docker build -t your_user_name/apache-img-demo:v2 .
    sudo docker tag your_user_name/apache-img-demo:v2 your_user_name/apache-img-demo:latest
    

  15. Realizar Login al Docker Hub

    sudo docker login docker.io
    

  16. Subir la imágen de contenedor creada anteriormente con todos sus TAGs, reemplazar your_user_name por su usuario de Docker Hub. Liste también las imágenes para verificar su Digest

    docker image push --all-tags your_user_name/apache-img-demo
    
    docker images --format "{{.Repository}}:{{.Tag}} - {{.Digest}}"
    

  17. Entrar a Docker Hub por medio del navegador web y verificar el nuevo repositorio creado, revisar la información del Nombre, Tags y Digest.

  18. Ejecutar el siguiente comando para detener y eliminar todos los contenedores, además eliminar todas la imágenes existentes localmente

    sudo docker stop $(docker ps -qa) ; sudo docker rm $(docker ps -qa) ; sudo docker image prune -a
    

  19. Crear un nuevo contenedor utilizando un TAG de los creados anteriormente, reemplazar your_user_name por su usuario de Docker Hub

    sudo docker run -d --name apache-v2 -p 8080:80 your_user_name/apache-img-demo:latest
    

  20. Verificar el servicio web del contenedor creado anteriormente

    curl http://localhost:8080
    

  21. Crear un nuevo contenedor utilizando un TAG de los creados anteriormente, reemplazar your_user_name por su usuario de Docker Hub

    sudo docker run -d --name apache-v1-0-5 -p 8181:80 your_user_name/apache-img-demo:v1.0.5
    

  22. Verificar los servicios web de los contenedores creados anteriormente

    curl http://localhost:8080
    curl http://localhost:8181