首頁 >運維 >Docker >docker怎麼更改映射端口

docker怎麼更改映射端口

王林
王林原創
2020-03-24 11:18:524089瀏覽

docker怎麼更改映射端口

1、編輯容器的設定檔進行更改連接埠;

docker run 运行启动时  -p 可以指定容器启动映射端口 (0.0.0.0:18080 8080)

可以編輯設定檔進行修改;(需要重新啟動docker 服務不只在於容器才能生效。只能重新啟動容器還是會覆寫的)

2、尋找需要更改連接埠的容器

docker ps

docker怎麼更改映射端口

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 就是映射的宿主机端口。

docker怎麼更改映射端口

#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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn