天天看點

修改已經建立的docker容器的端口映射

原始連結:https://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-docker-container

對于已經建立的docker容器,如何修改映射的端口号呢?可以參考如下的操作步驟

0)  docker container list –all

結果中的CONTAINER ID列為容器id

1)  docker inspect <容器id>   |  grep Id

檢視容器hash,<容器id>由步驟0)獲得

2)  docker stop <容器id>

停止運作中的容器

3) vim /var/lib/docker/containers/[容器hash]/hostconfig.json,(有人提到,如果config.v2.json裡面也記錄了端口,也要修改)

編輯容器配置檔案,<容器hash>由步驟1)獲得

修改PortBindings參數配置,主控端8001端口映射容器80端口示例:

“PortBindings”:{“80/tcp”:[{“HostIp”:””,”HostPort”:”8001″}]},”

4) systemctl restart docker

重新啟動docker引擎

5)docker start <容器id>

重新啟動docker容器

 ——————————————————————————————————————————————

1) 停止容器

2) 停止docker服務(systemctl stop docker)

3) 修改這個容器的hostconfig.json檔案中的端口(原帖有人提到,如果config.v2.json裡面也記錄了端口,也要修改)

cd /var/lib/docker/3b6ef264a040* #這裡是CONTAINER ID

vi hostconfig.json

如果之前沒有端口映射, 應該有這樣的一段:

"PortBindings":{}

增加一個映射, 這樣寫:

"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]}

前一個數字是容器端口, 後一個是主控端端口.

而修改現有端口映射更簡單, 把端口号改掉就行.

4) 啟動docker服務(systemctl start docker)

5) 啟動容器

轉載于:https://www.cnblogs.com/zlgxzswjy/p/10560058.html

繼續閱讀