前言
就執行中的容器而言,對於資源性的修改可以直接使用 docker update
進行改動,但是對映的埠、掛載等不可通過指令修改,雖然可以刪除容器再新建一個新的容器,除了此方案還可以修改容器的執行時配置檔案引數。
方案步驟概覽
graph LR
stopContainer[停止容器]
modifyConfiguration[修改執行時配置]
restartDocker[重啟docker服務]
stopContainer-->modifyConfiguration
modifyConfiguration-->restartDocker
具體流程說明 | markdown的流程圖不能顯示O(∩_∩)O~
第一步 : 檢視容器的 hash
值
docker inspect ${容器id} | grep Id
第一步 : 停止執行中的容器
docker stop ${容器id}
第二步 : 修改配置檔案
配置檔案包括 config.v2.json
與 hostconfig.json
一般情況下,停止了容器後,
config.v2.json
配置檔案不會有埠對映的配置
-
配置路徑規則
# config.v2.json /var/lib/docker/containers/${容器hash}/config.v2.json # hostconfig.json /var/lib/docker/containers/${容器hash}/hostconfig.json
-
修改指令
為了預防全域性替換,不建議使用如下的
sed
,我懶、也看了沒有其他和埠一樣的內容,嗯嗯、就這樣cd /var/lib/docker/containers/${容器hash} sed -i "s/現在對映的宿主機埠/目前對映的宿主機埠/g" config.v2.json sed -i "s/現在對映的宿主機埠/目前對映的宿主機埠/g" hostconfig.json
第三步 : 重啟 docker
服務
systemctl restart docker
價值源於技術,貢獻源於分享 | 筆記分享歸檔
No matter where I am, I will reply you immediately when I see the email.
My Email: echo "YUBzYW1lZ28uY29tCg==" | base64 -d
個人比較喜歡分享,若有不對的地方非常感謝指出
相互學習、共同進步~