$ 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