¿Cómo actualizar imágenes existentes con Docker-Compose?

Resuelto Efe asked hace 6 años • 8 respuestas

Tengo varios microservicios y estoy usando Docker-compose para implementaciones de desarrollo. Cuando hay algunos cambios en la base del código de microservicios, activo ci job para volver a implementarlos. Tengo el siguiente script para hacer esto. Pero cada vez tengo que crear todas las imágenes desde cero y luego ejecutarlas. Después de toda esta operación, tengo anonymousimágenes. Entonces estoy usando el último script para eliminarlos. ¿Qué sugerirías para hacer más práctico este proceso? ¿Hay alguna forma de actualizar una imagen existente sin eliminarla con nuevos cambios?

- docker-compose build
- docker-compose down
- docker-compose up -d --force-recreate
- docker rmi $(docker images -f "dangling=true" -q) -f

Información adicional: estoy usandogitlab-ci

Efe avatar Mar 16 '18 15:03 Efe
Aceptado

Los contenedores Docker están diseñados para ser efímeros. Para actualizar un contenedor existente, elimina el antiguo y comienza uno nuevo. Por tanto el proceso que estás siguiendo es el correcto.

Puede simplificar los comandos a los siguientes:

docker-compose pull
docker-compose up --force-recreate --build -d
docker image prune -f
yamenk avatar Mar 16 '2018 09:03 yamenk

Puedes actualizarlo usando:

docker-compose pull

Ahora tu imagen está actualizada. Si tiene la versión anterior del contenedor ejecutándose, debe reiniciarlo para usar la imagen actualizada:

docker-compose up --detach

upEl comando recrea automáticamente el contenedor en caso de cambio de imagen o configuración.

Evgen Bodunov avatar Jun 20 '2019 13:06 Evgen Bodunov

Prefiero asegurarme de que todas las imágenes se descarguen antes de actualizar los contenedores con las nuevas imágenes para minimizar el tiempo en un estado intermedio o, peor aún, en el medio en caso de que falle la descarga de una imagen.

  1. Saco las últimas imágenes:

    docker compose pull

  2. Luego reinicio los contenedores:

    docker compose up -d --remove-orphans

  3. Opcionalmente, elimino imágenes obsoletas:

    docker image prune

Christophe Lallement avatar Apr 22 '2020 10:04 Christophe Lallement
docker-compose pull

entonces

docker-compose up -d

no necesita el comando "down" "docker-compose up -d" solo recreará uno modificado

sonertbnc avatar May 09 '2020 10:05 sonertbnc