打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
修改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 IDvim hostconfig.json如果之前没有端口映射, 应该有这样的一段:"PortBindings":{}增加一个映射, 这样写:"PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"60000"}]}前一个数字是容器端口, 后一个是宿主机端口。将宿主机的60000端口映射到容器的8080端口而修改现有端口映射更简单, 把端口号改掉就行。
  • 4、启动docker服务(systemctl start docker)

  • 5、启动容器(docker start d00254ce3af7)

hostconfig.json文件

config.v2.json文件

方法二

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

docker inspect `container_name` | grep IPAddress

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

iptables -t nat -A  DOCKER -p tcp --dport 60000 -j DNAT --to-destination 172.17.0.2:8080
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Docker 容器九类常见故障排查及处理
将Elasticsearch作为Wordpress站内搜索
修改docker里面网站的port端口映射
Docker入门与简单使用
通过配置文件修改docker容器端口映射
Docker动态添加端口,不需要重新建立镜像
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服