Docker tags y versionamento

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
-
Ingresar al servidor qué contiene al ambiente de laboratorio con credenciales proporcionadas
-
Crear un directorio de trabajo para construir una nueva imágen de contenedor
mkdir docker-build -
Moverse al directorio creado anteriormente
cd docker-build -
Crear un nuevo archivo llamado Dockerfile, con el contenido que se muestra a continuación
vi Dockerfile FROM httpd:2.4 -
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 -
Realizar Login al Docker Hub
sudo docker login -
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 -
Entrar a Docker Hub por medio del navegador web y verificar el nuevo repositorio creado, revisar la información del Nombre, Tags y Digest.
-
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 -
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 -
Verificar el servicio web del contenedor creado anteriormente
curl http://localhost:8080 -
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 -
Modificar el archivo llamado Dockerfile, con el contenido que se muestra a continuación
vi Dockerfile FROM nginx -
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 -
Realizar Login al Docker Hub
sudo docker login docker.io -
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}}" -
Entrar a Docker Hub por medio del navegador web y verificar el nuevo repositorio creado, revisar la información del Nombre, Tags y Digest.
-
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 -
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 -
Verificar el servicio web del contenedor creado anteriormente
curl http://localhost:8080 -
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 -
Verificar los servicios web de los contenedores creados anteriormente
curl http://localhost:8080 curl http://localhost:8181