使用iptables为docker容器动态添加端口映射
2024-08-28 05:11:13
1、将当前iptables的配置写入保存到/etc/sysconfig/iptables
2、保存
/etc/init.d/iptables sava
3、修改iptables配置(vi /etc/sysconfig/iptables):
在适当位置增加下面红色的三行,然后重启iptables即可。(30612 是容器对外提供服务的端口)
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER -d 172.17.0.10/ ! -i docker0 -o docker0 -p tcp -m tcp --dport -j ACCEPT
-A DOCKER -d 172.17.0.117/ ! -i docker0 -o docker0 -p tcp -m tcp --dport -j ACCEPT
-A DOCKER -d 172.17.0.7/ ! -i docker0 -o docker0 -p tcp -m tcp --dport -j ACCEPT
-A DOCKER -d 172.17.0.7/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 30612 -j ACCEPT
COMMIT
# Completed on Thu Mar ::
# Generated by iptables-save v1.4.7 on Thu Mar ::
*nat
:PREROUTING ACCEPT [:]
:POSTROUTING ACCEPT [:]
:OUTPUT ACCEPT [:]
:DOCKER - [:]
-A PREROUTING -p tcp -m tcp --dport -j DNAT --to-destination 172.17.0.7:
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/ ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.17.0.10/ -d 172.17.0.10/ -p tcp -m tcp --dport -j MASQUERADE
-A POSTROUTING -s 172.17.0.117/ -d 172.17.0.117/ -p tcp -m tcp --dport -j MASQUERADE
-A POSTROUTING -s 172.17.0.7/ -d 172.17.0.7/ -p tcp -m tcp --dport -j MASQUERADE
-A POSTROUTING -s 172.17.0.7/32 -d 172.17.0.7/32 -p tcp -m tcp --dport 30612 -j MASQUERADE
-A OUTPUT ! -d 127.0.0.0/ -m addrtype --dst-type LOCAL -j DOCKER
-A DOCKER ! -i docker0 -p tcp -m tcp --dport -j DNAT --to-destination 172.17.0.10:
-A DOCKER ! -i docker0 -p tcp -m tcp --dport -j DNAT --to-destination 172.17.0.117:
-A DOCKER ! -i docker0 -p tcp -m tcp --dport -j DNAT --to-destination 172.17.0.7:
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 30612 -j DNAT --to-destination 172.17.0.7:30612
COMMIT
# Completed on Thu Mar ::
最后:
重启iptables服务
# centos6.x
service iptables restart # centos7.x
systemctl restart iptables.service
最新文章
- Atitit 游戏的原理与概论attilax总结
- STM32_RTC君
- Bulk_Collect 调用方式集锦
- C#验证身份证号码
- ORACLE创建、修改、删除序列
- Linux apache日志分析常用命令汇总
- bootstrap学习--什么是bootstrap
- 读取系统执行状态的shell脚本
- poj2636---Electrical Outlets(插线板)
- 使用Repository模式构建数据库访问层
- RAS、AES、DES加密
- 微信企业号C#开发配置API
- java web 项目打包(war 包)并部署
- vue+ElementUI使用笔记
- DDL触发器(用来控制用户的DDL行为)
- delphi程序设计改进可读性一法
- C++多线程同步之临界区(CriticalSection)
- LeetCode题解之Unique Morse Code Words
- Docker的大坑小洼(二)
- 牛客网多校训练第一场 E - Removal(线性DP + 重复处理)
热门文章
- 版本问题---cuda和tensorflow的版本对应关系
- nginx用指针的值的最后一位来判断过期事件
- 3.使用webpack配置文件webpack.confg.js配置打包文件的入口和出口
- 09—mybatis注解配置join查询
- 5、获取Class中的字段
- 爬取前尘无忧python职位信息并保存到mongo数据库
- Appium自动化测试教程-自学网-app基础知识
- I have Flash Player installed, but I am unable to view Flash content in Chromium. How do I enable Flash Player to view this content?
- leetcode解题报告(10):Merge Two Sorted Lists
- 2018-2019 ACM-ICPC, Asia Jiaozuo Regional Contest