内容简介:突然遇到一个问题怎么给一个已经在运行的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 把运行中的容器生成新的镜像,然后运行新的镜像
- 提交一个运行中的容器为镜像
docker commit containerid heropoo/example复制代码
2.运行 heropoo/example 镜像并添加8080映射容器80端口
docker run -d -p 8000:80 heropoo/example /bin/sh复制代码
试试吧~:sunglasses:
原文连接:
以上所述就是小编给大家介绍的《Docker容器动态添加端口》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Docker容器端口映射后突然无法连接的问题排查
- Nginx+Tomcat实现80端口转发8080端口
- 猎鹰网络安全工具新功能:主机端口扫描可以自定义端口范围
- nginx代理其他端口到80端口-低调小熊猫的技术小黑屋
- 浅析Linux网络端口
- 443端口共用的方案
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP for the World Wide Web, Second Edition (Visual QuickStart Gu
Larry Ullman / Peachpit Press / 2004-02-02 / USD 29.99
So you know HTML, even JavaScript, but the idea of learning an actual programming language like PHP terrifies you? Well, stop quaking and get going with this easy task-based guide! Aimed at beginning ......一起来看看 《PHP for the World Wide Web, Second Edition (Visual QuickStart Gu》 这本书的介绍吧!