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

使用iptables为docker容器动态添加端口映射的更多相关文章

  1. 给一个正在运行的Docker容器动态添加Volume

    给一个正在运行的Docker容器动态添加Volume本文转自:http://dockone.io/article/149 [编者的话]之前有人问我Docker容器启动之后还能否再挂载卷,考虑到mnt命 ...

  2. docker 笔记--运行中的容器如何添加端口映射

    解决: iptables -t nat -A DOCKER -p tcp --dport ${YOURPORT_1} -j DNAT --to-destination ${CONTAINERIP}:$ ...

  3. Centos7 docker容器启动后添加端口映射

    docker容器启动后添加端口映射的两种方法: 一.通过修改防火墙策略添加端口映射 docker容器已创建好,但是想在容器内配置tomcat监控,需要新的端口去访问,但是映射时没有映射多余端口,此时, ...

  4. docker容器启动后添加端口映射

    DOCKER 给运行中的容器添加映射端口 方法1 1.获得容器IP 将container_name 换成实际环境中的容器名 docker inspect `container_name` | grep ...

  5. 重启服务器后Docker容器暴露的端口外网突然访问不了!!

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

  6. Docker动态添加端口,不需要重新建立镜像

    Docker容器在运行期间有时可能会需要修改或者添加暴露的端口,但是有时候运行的容器又不想再另外建立一个新的镜像.这时可以找到docker容器的存放地方,然后直接修改配置文件. 我们的容器都是保存在/ ...

  7. 通过iptables限制docker容器端口

    如何限制docker暴露的对外访问端口 docker 会在iptables上加上自己的转发规则,如果直接在input链上限制端口是没有效果的.这就需要限制docker的转发链上的DOCKER表. # ...

  8. Docker实战(五)之端口映射与容器互联

    除了网络访问外,Docker还提供了两个很方便的功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主主机;另一个是互联机制实现多个容器间通过容器名来快速访问. 1.端口映射实现访 ...

  9. 解决docker容器启动时候无法映射端口的问题

    当我们停止防火墙后,docker容器启动映射端口可能无法映射端口,这个时候需要重建docker0网桥. 详细的错误是这样的: docker: Error response from daemon: d ...

随机推荐

  1. PAT Basic 1077 互评成绩计算 (20 分)

    在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平 ...

  2. jade过滤器

    以上语法基本讲完了jade的语法,然后在jade里面并不仅仅局限于使用jade语法,同样可以使用其他的插件语言,这种机制在jade里面称为filter,在jade里面加入过滤器用冒号 markdown ...

  3. 【Leetcode】【简单】【1. 两数之和】【JavaScript】

    题目描述 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能 ...

  4. python3 虚拟环境

    一.python中的虚拟环境 1.虚拟环境:局部的,独立的python环境,完全模拟系统全局python环境的使用 二.安装 http://virtualenv.pypa.io/en/latest/u ...

  5. vccode配置c++ 编译环境

    https://blog.csdn.net/qq_43041976/article/details/88544632 https://www.cnblogs.com/bpf-1024/p/115970 ...

  6. [转载]yarn的安装和使用

    yarn的安装和使用 2018-08-02 10:45:41 yw00yw 阅读数 50696 文章标签: yarn 更多 分类专栏: 工具   版权声明:本文为博主原创文章,遵循CC 4.0 BY- ...

  7. jq监听页面的滚动事件,

    jQuery监听页面的滚动状态,实现代码: $(document).scroll(function() {       var scroH = $(document).scrollTop(); //滚 ...

  8. Codeforces Round #551 (Div. 2) E. Serval and Snake (交互题)

    人生第一次交互题ac! 其实比较水 容易发现如果查询的矩阵里面包含一个端点,得到的值是奇数:否则是偶数. 所以只要花2*n次查询每一行和每一列,找出其中查询答案为奇数的行和列,就表示这一行有一个端点. ...

  9. Pollard-Rho 总结

    将一个大数\(N\)分解质因子. 试除法,暴力枚举\(1-\sqrt{N}\)的数.时间复杂度:\(O(\sqrt{N})\). 通常,这个复杂度够了,但有时,\(N\leq10^{18}\). 这就 ...

  10. Codeforces Round #426 (Div. 2) B题【差分数组搞一搞】

    B. The Festive Evening It's the end of July – the time when a festive evening is held at Jelly Castl ...