iptables映射docker端口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iptables映射docker端口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2246字,纯文字阅读大概需要4分钟。
内容图文
![iptables映射docker端口](/upload/InfoBanner/zyjiaocheng/933/ee149c360f9547bd871e4b1aad085a41.jpg)
使用iptables做一个端口映射,然后映射到容器里面。这样子可实现docker run 起一个容器时不加-p参数,也可以在外部访问。
前提:
docker inspect确定一下容器的ip地址,我这里是172.17.0.2地址。映射在宿主机192.168.50.132的801端口。
第一种方法:
iptables -t nat -A PREROUTING -m tcp -p tcp --dport 801 -j DNAT --to-destination 172.17.0.2:80
iptables -t nat -A POSTROUTING -m tcp -p tcp --dport 80 -d 172.17.0.2 -j SNAT --to-source 192.168.50.132:801
第二种方法:
使用iptabls-save > /etc/sysconfig/iptables
文件里面,然后修改这个/etc/sysconfig/iptables
文件中,加入三行内容。
# Generated by iptables-save v1.4.21 on Thu Dec 10 19:24:17 2020
*filter
:INPUT ACCEPT [48:3000]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [31:2412]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 801 -j ACCEPT # 加上此行
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Thu Dec 10 19:24:17 2020
# Generated by iptables-save v1.4.21 on Thu Dec 10 19:24:17 2020
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p tcp -m tcp --dport 801 -j MASQUERADE # 加上此行
-A DOCKER -i docker0 -j RETURN
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 801 -j DNAT --to-destination 172.17.0.2:80 # 加上此行
COMMIT
# Completed on Thu Dec 10 19:24:17 2020
接下来是使用systemctl restart iptables或者使用iptables-restore < /etc/sysconfig/iptables来重载服务
最后咱们就可以来访问了,curl http://192.168.50.132:801
内容总结
以上是互联网集市为您收集整理的iptables映射docker端口全部内容,希望文章能够帮你解决iptables映射docker端口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。