docker修改容器端口映射

大家都知道 docker run -p 时可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改端口了。简单粗暴点的方法是把现在的容器给 rm 掉然后再通过image生成一个, 如果每次遗漏都用这种方式那就很尴尬了,尤其到了生成环境也是不允许的。那在这给大家分享一种通过修改容器配置文件 hostconfig.json config.v2.json 来实现的方法。


操作步骤如下:

1. 找到被修改容器的 CONTAINER ID

docker ps -a

2. 先停掉所有容器

docker stop `docker ps -aq`

3. 再停掉docker服务

systemctl stop docker 或 service docker stop

4. 修改文件 hostconfig.json , 如果 config.v2.json 文件中也记录了端口那也要修改 (此处应用docker默认安装目录举例)。

vim /var/lib/docker/containers/[CONTAINER-ID]/hostconfig.json

# 修改PortBindings下的端口映射, 22是容器端口号,2201是宿主机端口号, 下面标红处是新添加的。

    "PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"2201"}],"7180/tcp":[{"HostIp":"","HostPort":"7201"}]},

 

vim /var/lib/docker/containers/[CONTAINER-ID]/config.v2.json  

# 修改ExposedPorts下的端口, 22是容器端口号, 下面标红处是新添加的。

   "ExposedPorts":{"22/tcp":{},"7180/tcp":{}},

 

5. 启动docker服务

systemctl start docker 或 service docker start

6. 启动容器测试端口。

 

补充: 

运行docker容器时指定的参数大部分都能在 hostconfig.json 和 config.v2.json 两个文件中修改, 前提是先停止docker服务。

 


原文地址: https://blog.csdn.net/DelevinData/article/details/102401148

你可能感兴趣的:(docker,config.v2.json,hostconfig.json,docker容器修改端口号,容器端口映射,修改docker容器运行参数)