在docker中如何修改已经运行的端口映射


其实也是工作中常见的需求,docker配置文件一般位于 /var/lib/docker/containers 中,找到相应的端口修改配置文件中的内容即可,本人测试的是ubuntu 18.04版本,其他版本应该也是类似的
【1】获得镜像id
`docker ps`
【2】停止镜像
`docker stop 你的镜像ID`
【3】停止docker
`systemctl stop docker`
【4】修改docker配置文件, 进入配置目录
`cd /var/lib/docker/containers`
【5】修改配置文件,主要是 hostconfig.json 和 config.v2.json 这两个
其中hostconfig.json 文件,添加 "PortBindings” 属性参数:

"PortBindings":{"3100/tcp":[{"HostIp":"","HostPort":"3100"}],"8000/tcp":[{"HostIp":"","HostPort":"8000"}]}

config.v2.json 文件修改"ExposedPorts"属性参数(如果没有这个属性就添加)
`"ExposedPorts":{"3100/tcp":{},"8000/tcp":{}}`
【6】最后开启docker,运行容器
`systemctl start docker`
`docker start 你的镜像ID`

【tips】 如果修改后找不着这个容器了,说明修改的有问题。修改的对是可以找到的。