Recrea un contenedor único de Docker-Compose con una nueva configuración

Recrea un contenedor único de Docker-Compose con una nueva configuración

Si hago cambios en mi docker-compose.yml(por ejemplo, cambio en qué puerto de host está expuesto un puerto de contenedor), ¿puedo recrear ese contenedor único o necesito reiniciar toda la pila?

docker-compose stop ; docker-compose upHará el trabajo pero quiero evitar reiniciar el resto de los servicios. También quiero evitar eliminar volúmenes asociados con el servicio que estoy reiniciando, por lo que docker-compose kill <service> ; docker-compose rmno es una opción.

Respuesta1

Simplemente corre docker-compose upde nuevo. Todo lo que se vea afectado por su cambio (contenedor, volumen, red, etc.) se recreará, los demás contenedores permanecerán.

Si desea utilizar imágenes más nuevas, ejecútelas docker-compose pullde antemano.

Respuesta2

A veces se ignoran los cambios realizados en algún archivo env. Entonces lo hago

docker stop mycontainer
docker compose up

esto reiniciará el contenedor único más los contenedores dependientes, que es lo que debe hacer. Evitar reiniciar los contenedores dependientes es una mala idea, porque mycontaineraparecerá una IP de Docker diferente

tener algún tipo de reloadcomando sería bueno

información relacionada