赞
踩
大家都知道 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。