如何给正在运行的docker容器添加端口映射

发布时间 2023-04-30 22:02:36作者: junlin623

我们都知道启动docker容器的时候可以使用-d参数进行端口映射,但是如果你的容器已经创建出来了但是突然又想要添加一个端口映射,这时总不能重新创建一个容器吧,之前的工作不都白费了吗

有一个办法就是先将当前已经配置过的容器打包成新的镜像,然后用这个镜像生成一个新的容器,这样所做的工作既不会丢失,又能在容器创建的时候重新指定端口映射,这样就解决了问题,但是这个方法显得有些笨重,更好的方法是直接对当前容器进行设置,方法如下:

1. 首先要停止容器

 docker stop <CONTAINER ID>

2. 修改容器的端口映射文件

cd /var/lib/docker/containers
# 找到以container id开头的文件夹并进入

修改 hostconfig.json文件

找到PortBindings 添加端口映射

比如想要暴露容器内的22端口到2200端口:

"22/tcp":[{"HostIp":"","HostPort":"2200"}]

修改config.v2.json文件,在ExposedPorts 部分添加"22/tcp":{}

3. 重启Docker

systemctl restart docker

如果前面修改文件时出现错误,查看容器就会丢失,需要确定配置文件的修改一定是对的

4. 启动之前停止的容器

docker start <CONTAINER ID>
docker ps #查看