Q:docker run -itd --name=NAME --net host IMAGE bash 启动容器后,容器中没法链接外网docker
A:进入容器 docker exec -ti [NAMES] /bin/bashshell
设置防火墙apache
使用命令iptables -n -L 能够查看当前防火墙的状态以及规则tomcat
由上面的能够看到防火墙都没有配置,都是空的。若是你们要清空本身的防火墙配置能够用命令bash
启用防火墙配置,固然首先要容许远程,我本地的远程端口没有改到,建议改的。服务器
iptables -A INPUT -p tcp --dport 22 -j ACCEPT网络
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPTtcp
除了远程,咱们还有其它的端口是须要开放使用的,例如作网站服务器的,还须要开放80 端口。测试
iptables -A INPUT -p tcp --dport 80 -j ACCEPT网站
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
由于服务器要使用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
以上是我服务器容许开放的端口都容许经过了,最后其它的都禁止就能够了。
最后 保存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 能够查看每一个运行中的容器的网络流量.