Docker已运行容器添加端口映射
针对已运行的容器添加端口映射
1、查看容器是否映射端口
docker port [容器id 或 容器名]
有端口映射:
无端口映射:
2、查看容器完整Id
docker inspect [容器id] | grep Id
// 得到以下结果
// "Id": "fcae55f5180a79487662de426863565c7df05ed9b87854093b62776734928d25",
3、进入docker容器目录查看
cd /var/lib/docker/containers/var/lib/docker/containers
4、根据得到的容器完整id进入目录
cd fcae55f5180a79487662de426863565c7df05ed9b87854093b62776734928d25
目录中分别有两个文件:
hostconfig.json
和
config.v2.json
,直接查看文件内容比较混乱可以下载到本机,使用json工具查看。
5、修改配置文件
hostconfig.json
// 当前容器 3306 端口绑定到本机 3306 端口"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3306"}]},
config.v2.json
// 这个文件需要查看两个位置// 暴露 3306、33060 端口"ExposedPorts":{"3306/tcp":{},"33060/tcp":{}},// 和 // 这一段应该是表示哪些ip可以访问之类的// 如下也是我从一个 docker run -d -p80:80 ... 带有端口映射的容器的 config.v2.json 文件中复制出来修改后的"Ports":{"3306/tcp":[{"HostIp":"0.0.0.0","HostPort":"3306"},{"HostIp":"::","HostPort":"3306"}],"33060/tcp":null},
6、替换配置文件
- 停止容器
docker stop [容器Id 或 容器名]
- 将修改过后的配置文件复制到指定目录下
/var/lib/docker/containers/完整容器Id
,(怕修改错误可以先备份原有的文件) - 重启docker
systemctl restart docker
- 重启后可以先查看
hostconfig.json
和config.v2.json
两个配置文件是否是修改过后的,如果不是可以尝试多上传几次(我就是这样的) - 最后再查看端口号是否有映射
docker port [容器id 或 容器名称]
版权归原作者 饭瘾犯了 所有, 如有侵权,请联系我们删除。