1K
Cuando ejecuta un nuevo contenedor Docker, la versión de la imagen en la que se basó no se actualiza automáticamente a la última versión. Por ejemplo, si crea un contenedor basado en la imagen NGINX Docker versión 1.21.1, el contenedor continuará ejecutándose con esa versión.
A menos que tenga razones específicas para ejecutar una imagen de Docker desactualizada, es una buena idea actualizar a la más reciente. Podría haber correcciones de errores, mejoras de seguridad, etc. Pero, ¿cómo actualiza el contenedor Docker y la imagen que está ejecutando? Eso es lo que exploraremos en este post.
Requisitos
- Una máquina Linux con Docker ya instalado. Esta demostración utilizará una computadora con Ubuntu 22.04.
- Una imagen y un contenedor de Docker existentes para actualizar. Esta publicación utilizará un contenedor y una imagen de NGINX.
Copia de seguridad de la información del contenedor Docker
Este paso es opcional pero recomendado. ¿Por qué?
En algunos casos, los usuarios no recuerdan o no documentaron las condiciones especificadas cuando se ejecutó por primera vez el contenedor de Docker. Tales condiciones incluyen mapeos de puertos y volúmenes, por nombrar algunos.
En este ejemplo, configuramos para actualizar un contenedor Docker y una imagen que ejecuta una aplicación web NGINX. Como puede ver a continuación, se puede acceder a este sitio web a través de HTTP://192.168.203.129:8080y tenemos que asegurarnos de que este sitio web siga funcionando después de actualizar la imagen y el contenedor de Docker.
Nota. El sitio web de muestra anterior utiliza una plantilla gratuita llamada Forty from HTML5up.net.
Ejecutemos el siguiente comando para determinar la identidad del contenedor y qué versión de imagen usa.
docker ps -a
Según el resultado, la imagen y la versión de este contenedor son nginx:1.19.10. El nombre del contenedor es nginx_server y el ID del contenedor es 40a06775ebc5.
El siguiente comando guardará los detalles del contenedor de Docker en un archivo llamado nginx_server_info.json.
docker inspect nginx_server > nginx_server_info.json
Y ahora tiene una copia de seguridad de la información del contenedor en un archivo JSON. ¿Cómo te ayuda tener esta copia de seguridad? Con él, tiene una referencia para el estado del contenedor, como el volumen montado y la asignación de puertos.
Actualizar la imagen y el contenedor de Docker
Ahora actualicemos el contenedor Docker con la imagen más reciente. Este proceso consta de los siguientes pasos de alto nivel:
- Detenga y elimine el contenedor de Docker.
- Extraiga la última imagen de Docker.
- Cree un nuevo contenedor Docker utilizando sus condiciones anteriores (volúmenes, puertos, etc.)
Primero, detengamos el contenedor ejecutando este comando.
docker stop [container name / ID]
En segundo lugar, elimine el contenedor.
docker rm [container name / ID]
En tercer lugar, ejecute este comando para extraer la última versión de la imagen NGINX.
Nota. Agregar la última etiqueta en el comando es opcional. De forma predeterminada, Docker extrae la imagen más reciente si no se especifica una versión específica.
docker pull nginx:latest
Como puede ver, ahora hay dos imágenes NGINX en este host.
Nota. Consulte nuestro tutorial sobre cómo actualizar el entorno de Pihole.
Por último, vuelva a crear el contenedor ejecutando el siguiente comando:
Tenga en cuenta que este comando se formuló siguiendo la información respaldada del contenedor anterior. Su comando tendrá un conjunto diferente de opciones.
docker run --name nginx_server -p 8080:80 -d -v /var/www:/usr/share/nginx/html nginx:latest
Como puede ver a continuación, el nuevo contenedor se basa en la última imagen de NGINX Docker. En comparación con el contenedor anterior, solo han cambiado la identificación y la imagen.
Nota. Consulte nuestro tutorial sobre cómo ejecutar y configurar la imagen de Docker Grafana.
Probar el nuevo contenedor Docker
El nuevo contenedor de Docker debe funcionar como se espera después de la actualización de la imagen. La forma de probar el contenedor depende de la aplicación que se esté ejecutando. Pero en este caso, dado que la aplicación es un sitio web, podemos simplemente abrir la URL del sitio en el navegador y confirmar que funciona.
Conclusión
Cuando actualice la imagen y el contenedor de Docker, debe asegurarse de estar preparado para recrear el contenedor tal como era para evitar errores de configuración, incoherencias de la aplicación y pérdida de datos. Tómese su tiempo para planificar porque esa es la parte más desafiante; la actualización es fácil una vez que haya realizado los preparativos adecuados.