對於已經建立的docker容器,如何修改映射的端口號呢?能夠參考以下的操做步驟json
0) docker container list –allvim
結果中的CONTAINER ID列爲容器idapp
1) docker inspect <容器id> | grep Idtcp
查看容器hash,<容器id>由步驟0)得到rest
2) docker stop <容器id>get
中止運行中的容器hash
3) vim /var/lib/docker/containers/[容器hash]/hostconfig.json,(有人提到,若是config.v2.json裏面也記錄了端口,也要修改)it
編輯容器配置文件,<容器hash>由步驟1)得到io
修改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) 啓動容器