docker 容器没法链接外网

Q:docker run -itd --name=NAME --net host IMAGE bash  启动容器后,容器中没法链接外网docker

A:进入容器 docker exec -ti [NAMES] /bin/bashshell

设置防火墙apache

  1. 使用命令iptables  -n -L  能够查看当前防火墙的状态以及规则tomcat

  2. 由上面的能够看到防火墙都没有配置,都是空的。若是你们要清空本身的防火墙配置能够用命令bash

  3. 启用防火墙配置,固然首先要容许远程,我本地的远程端口没有改到,建议改的。服务器

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT网络

    iptables -A OUTPUT -p tcp --sport 22 -j ACCEPTtcp

  4. 除了远程,咱们还有其它的端口是须要开放使用的,例如作网站服务器的,还须要开放80 端口。测试

     iptables -A INPUT -p tcp --dport 80 -j ACCEPT网站

    iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

  5. 由于服务器要使用DNS解析,因此还要容许服务器与DNS服务器之间的数据通讯,直接容许那个IP 能够了。我使用的DNS 是  114.114.114.114

    iptables -A INPUT -s 114.114.114.114 -j ACCEPT

    iptables -A OUTPUT -d 114.114.114.114 -j ACCEPT

  6. 以上是我服务器容许开放的端口都容许经过了,最后其它的都禁止就能够了。

    最后 保存iptables的规则,我我的的服务器里边不须要其它的操做,因此只是作简单的规则就能够了。

    service iptables save

 

ps:

或者关闭防火墙,防火墙在关闭后,须要重启宿主机,至少重启docker服务。

缘由:防火墙的起、停、刷新这类行为会致使清空 Docker 设置的网络规则,而致使容器内的网络没法和外部互联。

 

若是想要测试某个容器的网络吞吐量,能够写一个死循环的脚本,好比:

while(true)

do 

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.79/bin/apache-tomcat-7.0.79.tar.gz

sleep 10

done

而后打开另外一个shell窗口,在容器外面使用命令 docker stats 能够查看每一个运行中的容器的网络流量.

相关文章
相关标签/搜索