Повторное создание одного контейнера docker-compose с новой конфигурацией

Повторное создание одного контейнера docker-compose с новой конфигурацией

Если я внесу изменения docker-compose.yml(например, изменю порт хоста, на котором открыт порт контейнера), смогу ли я заново создать этот отдельный контейнер или мне нужно будет перезапустить весь стек?

docker-compose stop ; docker-compose upсделает работу, но я хочу избежать перезапуска остальных служб. Я также хочу избежать удаления томов, связанных со службой, которую я перезапускаю, поэтому это docker-compose kill <service> ; docker-compose rmне вариант.

решение1

Просто запустите docker-compose upснова. Все, на что повлияло ваше изменение (контейнер, том, сеть и т. д.), будет создано заново, другие контейнеры останутся.

Если вы хотите использовать более новые образы, запустите их docker-compose pullзаранее.

решение2

Иногда изменения в каком-то env-файле игнорируются. Тогда я делаю

docker stop mycontainer
docker compose up

это перезапустит один контейнер плюс зависимые контейнеры, что вы и делаете. Избегать перезапуска зависимых контейнеров — плохая идея, потому что mycontainerэто приведет к разным ip-адресам docker

reloadБыло бы неплохо иметь какую-то команду

Связанный контент