Docker 容器创建后添加端口映射
还有一种通过修改iptables的方法,但是经过尝试发现修改未果,就不做介绍。
通过修改容器配置文件添加端口映射
docker容器被创建后配置文件会被保存在一个文件夹,解决方法就是将配置文件中添加映射。
- 停止docker容器(docker stop 容器ID(运行中的容器ID 用docker ps查询))这里以
da57c4d92d0d
为例
docker stop da57c4d92d0d
- 停止docker服务
systemctl stop docker
- 获取root权限,我的环境中不获取root权限无法进入docker配置文件的文件夹
sudo -i
- docker的配置文件在/var/lib/docker/containers/ 下,文件名开头对应着容器ID
cd /var/lib/docker/containers/da57c4d92d0d*
- 修改配置文件
这里需要hostconfig.json 以及config.v2.json
若需要将容器的5222端口映射到宿主服务器的22端口
- 在hostconfig.json添加
"PortBindings": { "21/tcp": [ { "HostIp": "", "HostPort": "5222" } ], }
- 在config.v2.json中需要将新加的端口添加到
ExposedPorts
中
"ExposedPorts": { "21/tcp": {} }
- 修改完成后启动docker
systemctl start docker
- 启动容器,并查看容器端口
docker start da57c4d92d0d docker port da57c4d92d0d