docker 運行一段時間后想增加服務,又不想搭建新的 docker,難道真的只能關閉服務再編輯組態檔嗎?這樣做的話,既影響線上業務,而且有可能造成 docker 服務無法啟動。還有更好更安全的方法嗎?
uj5u.com熱心網友回復:
1、獲得容器IP將container_name 換成實際環境中的容器名
docker inspect `container_name` | grep IPAddress
2、 iptable轉發埠
將容器的8000埠映射到docker主機的8001埠
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
uj5u.com熱心網友回復:
## 查看id 就是 容器的 hash_of_the_container 數值docker inspect 容器名字
## 修改hostconfig.json
vim /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
在 hostconfig.json 里有 "PortBindings":{} 這個配置項,可以改成 "PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}
## 修改config.v2.json
vim /var/lib/docker/containers/[hash_of_the_container]/config.v2.json
在 config.v2.json 里面添加一個配置項 "ExposedPorts":{"80/tcp":{}} , 將這個配置項添加到 "Tty": true, 前面
## 最后重啟 docker的守護行程 service docker restart
## 查看配置項已經修改成功
docker inspect 容器名
https://www.cnblogs.com/wangkai333/p/11794521.html
uj5u.com熱心網友回復:
iptables 的方式是可以實作,但 alpine 好像默認沒有 iptables,另外,容器系統的IP不是固定的,服務器重啟后IP就變了。uj5u.com熱心網友回復:
docker 應該出一個動態配置埠映射的命令。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/9479.html
標籤:Docker
