
如果我對其進行更改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
會出現不同的 docker ip
有某種reload
命令就好了