$ sudo brctl show bridge name bridge id STP enabled interfaces docker0 8000.0242ed943d02 no
運行一個docker容器,在容器中查看它的網絡設備(若是沒有ifconfig命令,經過apt-get install -y net-tools)linux
root@b2a3136f5425:/# ifconfig eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02 inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:145 errors:0 dropped:0 overruns:0 frame:0 TX packets:60 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:184985 (184.9 KB) TX bytes:4758 (4.7 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
docker已經自動建立了eth0的網卡,注意觀察ip地址和mac地址。不要退出容器,再運行以下查看網橋的狀態nginx
$ sudo brctl show bridge name bridge id STP enabled interfaces docker0 8000.0242ed943d02 no veth95521e6
咱們看到在interface中多了一個veth*的這樣一個接口。經過ifconfig命令一樣能夠看到這個網絡接口。web
sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0
修改完後,重啓docker服務 sudo service docker restart. 新運行的容器地址就變成了新的ip地址了。docker
sudo brctl addbr br0 sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0
更改docker守護進程的啓動配置:ubuntu
FROM ubuntu:14.04 RUN apt-get install -y ping RUN apt-get update RUN apt-get install -y nginx RUN apt-get install -y curl EXPOSE 80 CMD /bin/bash
docker run --link=[CONTAINER_NAME]:[ALIAS] [IMAGE] [COMMAND]
CONTAINER_NAME: 須要鏈接的容器名字vim
docker -run -it --link=container01:webtest nginx ping webtest
查看在容器中產生的哪些影響bash
sudo iptables -L -n 查看iptables規則的狀況 sudo iptables -F 清空iptables規則設置 sudo service docker restart 從新啓用docker的服務 sudo iptables -L -n 再來查看iptables的設置,docker的規則鏈已經在第一位
從新啓動容器便可網絡
sysctl net.ipv4.conf.all.forwarding
ip_forward自己是Linux系統中的一個變量,它的值決定了系統是否會轉發流量。在Docker守護進程的默認參數中也有ip_forward選項,默認值是true. curl