Docker容器动态添加端口

栏目: 编程工具 · 发布时间: 7年前

内容简介:突然遇到一个问题怎么给一个已经在运行的docker容器添加端口,找了找资料,记个笔记。参考:

Docker容器动态添加端口

突然遇到一个问题怎么给一个已经在运行的 docker 容器添加端口,找了找资料,记个笔记。

参考:

方法1 修改iptables端口映射

docker的端口映射并不是在docker技术中实现的,而是通过宿主机的iptables来实现。通过控制网桥来做端口映射,类似路由器中设置路由端口映射。

比如我们有一个容器的80端口映射到主机的8080端口,先查看iptables到底设置了什么规则:

sudo iptables -t nat -vnL复制代码

在结果中有一条:

Chain DOCKER
target     prot opt source               destination
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8080 to:172.17.0.3:80复制代码

我们可以看到docker创建了一个名为DOKCER的自定义的链条Chain。而我开放80端口的容器的ip是172.17.0.3

也可以通过inspect命令查看容器ip:

docker inspect containerId |grep IPAddress复制代码

我们想再增加一个端口映射,比如 8081->81 ,就在这个链条是再加一条规则:

sudo iptables -t nat -A  DOCKER -p tcp --dport 8081 -j DNAT --to-destination 172.17.0.3:81复制代码

如果加错了或者想修改:

先显示行号查看

sudo iptables -t nat -vnL DOCKER --line-number复制代码

删除规则3

sudo iptables -t nat -D DOCKER 3复制代码

方法2 修改容器配置文件

容器的配置文件 /var/lib/docker/containers/[containerId] 目录下, hostconfig.json 和 config.v2.json 修改好之后,重启容器服务。

方法3 把运行中的容器生成新的镜像,然后运行新的镜像

  1. 提交一个运行中的容器为镜像
docker commit containerid heropoo/example复制代码

2.运行 heropoo/example 镜像并添加8080映射容器80端口

docker run -d -p 8000:80  heropoo/example /bin/sh复制代码

试试吧~:sunglasses:

原文连接:

zhuanlan.zhihu.com/p/65938559


以上所述就是小编给大家介绍的《Docker容器动态添加端口》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

这就是OKR

这就是OKR

【美】约翰·杜尔(John Doerr) / 曹仰锋、王永贵 / 中信出版社 / 2018-12 / 68.00元

这本书是传奇风险投资人约翰·杜尔的作品,揭示了OKR这一目标设定系统如何促使英特尔、谷歌等科技巨头实现爆炸性增长,以及怎样促进所有组织的蓬勃发展。 20世纪70年代,在英特尔担任工程师时,杜尔首次接触到OKR。之后,作为一个风险投资人,杜尔不遗余力地将这一管理智慧,分享给50多家公司和机构,包括谷歌、亚马逊、领英、脸书、比尔及梅琳达·盖茨基金会,甚至摇滚歌手波诺的公益项目。在杜尔的帮助下,任......一起来看看 《这就是OKR》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具