1. 程式人生 > >通過配置檔案修改docker容器埠對映

通過配置檔案修改docker容器埠對映

有時候,我們需要給正在執行的容器新增埠對映,百度一下發現很多都是通過iptables,或者是通過將當前容器通過docker commit命令提交為一個映象,然後重新執行docker run命令新增埠對映。這種方法雖然可以,但是感覺好像有點南轅北轍,沒有必要啊。看了很多文章,貌似沒有一種合適的辦法可以相對“優雅”地解決這個問題。

在一次偶然的情況下,在 StackOverflow 和一篇老外的文章上面找到了如下的解決方法:

1、使用 docker ps -a 命令找到要修改容器的 CONTAINER ID

2、執行 docker inspectCONTAINER ID | grep Id 命令

3、執行 cd /var/lib/docker/containers

命令進入找到與 Id 相同的目錄,如下圖


4、停止 docker 引擎服務,systemctl stop docker 或者 service docker stop

5、進入對應 Id 所在目錄後,如上圖所示,修改 hostconfig.json 和 config.v2.json ---- vi hostconfig.json


   可以看到格式很亂,可以使用json美化工具檢視具體資訊。


然後可以按照方框中所示,再新增一段類似的內容,比如新增一個 80 埠,在 PortBindings下邊新增一下內容埠配置之間用英文字元逗號隔開

"80/tcp": [ 
{
 "HostIp": "0.0.0.0",
 "HostPort": "80"
 }
]

接著修改 vi config.v2.json

找到 ExposedPorts 和 Ports 對應項,還是仿照原先的內容新增自己所需要的埠對映 


========================================================================

========================================================================


儲存之後 systemctl start docker ,啟動容器之後就可以看到新增的埠映射了。

參考連結: