首页 > 其他 > 详细

修改docker容器端口映射的方法

时间:2020-04-13 11:55:30      阅读:58      评论:0      收藏:0      [点我收藏+]
原文:修改docker容器端口映射的方法

大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。

有没有办法不保存镜像而直接修改已有的这个容器呢?有。在stackoverflow上面找到答案了,原帖链接

方法一
  • 1、停止容器(docker stop d00254ce3af7)
  • 2、停止docker服务(systemctl stop docker)
  • 3、修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改)
cd /var/lib/docker/containers/d00254ce3af7*     #这里是CONTAINER ID

vim hostconfig.json
如果之前没有端口映射, 应该有这样的一段:
"PortBindings":{}

增加一个映射, 这样写:
"PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"60000"}]}
前一个数字是容器端口, 后一个是宿主机端口。将宿主机的60000端口映射到容器的8080端口
而修改现有端口映射更简单, 把端口号改掉就行。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 4、启动docker服务(systemctl start docker)
  • 5、启动容器(docker start d00254ce3af7)

hostconfig.json文件
技术分享图片

config.v2.json文件
技术分享图片

方法二

1、获得容器IP
container_name 换成实际环境中的容器名

docker inspect `container_name` | grep IPAddress
  • 1

2、iptable转发端口
将宿主机的60000端口映射到容器的8080端口

iptables -t nat -A  DOCKER -p tcp --dport 60000 -j DNAT --to-destination 172.17.0.2:8080
  • 1

修改docker容器端口映射的方法

原文:https://www.cnblogs.com/lonelyxmas/p/12690357.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!