通過配置檔案修改docker容器埠對映
有時候,我們需要給正在執行的容器新增埠對映,百度一下發現很多都是通過iptables,或者是通過將當前容器通過docker commit命令提交為一個映象,然後重新執行docker run命令新增埠對映。這種方法雖然可以,但是感覺好像有點南轅北轍,沒有必要啊。看了很多文章,貌似沒有一種合適的辦法可以相對“優雅”地解決這個問題。
在一次偶然的情況下,在 StackOverflow 和一篇老外的文章上面找到了如下的解決方法:
1、使用 docker ps -a 命令找到要修改容器的 CONTAINER ID
2、執行 docker inspect 【CONTAINER ID】 | grep Id 命令
3、執行 cd /var/lib/docker/containers
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 ,啟動容器之後就可以看到新增的埠映射了。
參考連結: