在docker容器使用过程中,我们有时可能需要为某容器添加新的端口映射,从而可访问相关服务。
在不添加新的镜像的情况下,可以通过修改对应容器下的hostconfig.json 和 config.v2.json两个文件实现端口映射添加。
步骤如下:
停止正在运行的镜像
docker stop your_docker_id/name
修改对应容器下的hostconfig.json 和 config.v2.json
一般是放在/var/lib/docker/containers/<container-id>目录下,如果修改过默认存放路径则可以查找一下:
find / -iname 'hostconfig.json'
然后找到需要修改的容器hash下的两个文件:
"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"2225"}],"8888/tcp":[{"HostIp":"","HostPort":"8001"}]}
上述过程我们在hostconfig.json文件中添加了8001->8888端口的映射。另外,在config.v2.json文件中添加如下端口:
"ExposedPorts":{"22/tcp":{},"8888/tcp":{}}
重启Docker服务
sudo systemctl restart docker
开启对应镜像
docker start your_docker_id/name
进入docker容器
docker exec -it your_docker_id/name /bin/bash