zoukankan      html  css  js  c++  java
  • 使用iptables为docker容器动态添加端口映射

    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/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 9000 -j ACCEPT
    -A DOCKER -d 172.17.0.117/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8080 -j ACCEPT
    -A DOCKER -d 172.17.0.7/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 32095 -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  3 13:34:42 2016
    # Generated by iptables-save v1.4.7 on Thu Mar  3 13:34:42 2016
    *nat
    :PREROUTING ACCEPT [267:19881]
    :POSTROUTING ACCEPT [8:480]
    :OUTPUT ACCEPT [8:480]
    :DOCKER - [0:0]
    -A PREROUTING -p tcp -m tcp --dport 32095 -j DNAT --to-destination 172.17.0.7:32095
    -A PREROUTING -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.10/32 -d 172.17.0.10/32 -p tcp -m tcp --dport 9000 -j MASQUERADE
    -A POSTROUTING -s 172.17.0.117/32 -d 172.17.0.117/32 -p tcp -m tcp --dport 8080 -j MASQUERADE
    -A POSTROUTING -s 172.17.0.7/32 -d 172.17.0.7/32 -p tcp -m tcp --dport 32095 -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/8 -m addrtype --dst-type LOCAL -j DOCKER
    -A DOCKER ! -i docker0 -p tcp -m tcp --dport 9000 -j DNAT --to-destination 172.17.0.10:9000
    -A DOCKER ! -i docker0 -p tcp -m tcp --dport 54321 -j DNAT --to-destination 172.17.0.117:8080
    -A DOCKER ! -i docker0 -p tcp -m tcp --dport 32095 -j DNAT --to-destination 172.17.0.7:32095
    -A DOCKER ! -i docker0 -p tcp -m tcp --dport 30612 -j DNAT --to-destination 172.17.0.7:30612
    COMMIT
    # Completed on Thu Mar  3 13:34:42 2016

    最后:

    重启iptables服务

    # centos6.x
    service iptables restart
    
    # centos7.x
    systemctl restart iptables.service
  • 相关阅读:
    IO 单个文件的多线程拷贝
    day30 进程 同步 异步 阻塞 非阻塞 并发 并行 创建进程 守护进程 僵尸进程与孤儿进程 互斥锁
    day31 进程间通讯,线程
    d29天 上传电影练习 UDP使用 ScketServer模块
    d28 scoket套接字 struct模块
    d27网络编程
    d24 反射,元类
    d23 多态,oop中常用的内置函数 类中常用内置函数
    d22 封装 property装饰器 接口 抽象类 鸭子类型
    d21天 继承
  • 原文地址:https://www.cnblogs.com/liugp/p/11399178.html
Copyright © 2011-2022 走看看