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 能夠查看每一個運行中的容器的網絡流量.