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 就會失效、所以要先保存再重啟。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦