Docker 更改容器映射端口


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

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 就會失效、所以要先保存再重啟。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM