1、編輯容器的設定檔進行更改連接埠;
docker run 运行启动时 -p 可以指定容器启动映射端口 (0.0.0.0:18080 8080)
可以編輯設定檔進行修改;(需要重新啟動docker 服務不只在於容器才能生效。只能重新啟動容器還是會覆寫的)
2、尋找需要更改連接埠的容器
docker ps
3、根據 CONTAINER ID 尋找docker 設定檔;(容器檔案配置預設 /var/lib/docker/containers)
因為我更改了docker 預設儲存位置。 (docker info 可以查看docker資訊)
4、更改docker 預設環境變數預設配置是/var/lib/docker
在docker 啟動檔案新增預設環境系統配置" / etc/default/docker ":
新增 Environment File 設定:
# vi /usr/lib/systemd/system/docker.service
在[Serivce] 下新增
EnvironmentFile=-/etc/default/docker #添加配置文件
在[Install] 下新增
EnvironmentFile=-/etc/default/docker
(推薦教學:docker教學)
5、停止容器
docker stop [ID/name]
6、停止docker 服務
systemctl stop docker
7 、編輯更改容器的設定檔hostconfig.json
config.v2.json 是容器啟動才會看到對映位址的、所以不必操作。
/data/docker/containers/0731470143a94579b837b295f4c03a5f283e2bc1b0be746e7da451b9eb817120/hostconfig.json 容器配置命名就是 以 CONTAINER ID 容器ID开头的
8、檢視編輯hostconfig.json 檔案;
jq . ./hostconfig.json # jq 查看json 格式文件 # 更改 HostPort 就是映射的宿主机端口。
#9、啟動docker 服務啟動容器
docker start [ID/NAME] systemctl start docker docker ps
10、容器啟動、iptables 這個會自動加入的;直接server iptables save 儲存就好了。或不放心可以直接新增連接埠 :
宿主机添加端口: iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 58080 -j ACCEPT 宿主机 nat 映射: iptables -A DOCKER ! -i docker0 -p tcp -m tcp --dport 58080 -j DNAT --to-destination 172.16.4.3:8080
附註:
docker 在操作或新增容器時候,先 service iptables save ,然後再編輯新增重啟。
新增容器預設會加入映射到防火牆的,但是重啟iptables 就會失效、所以要先儲存再重新啟動。
以上是docker怎麼更改映射端口的詳細內容。更多資訊請關注PHP中文網其他相關文章!