
Если я внесу изменения 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
Было бы неплохо иметь какую-то команду