内容简介:突然遇到一个问题怎么给一个已经在运行的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端口共用的方案
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。