Docker(2)

网络设置

docker 使用bridge的方式来实现container之间以及外部的通信

Network架构

在host主机上的一个veth{id}的虚拟网卡和一个container里面的eth0网卡一一映射

Host上的bridge负责把数据流在不同的veth间转发,实现网络的IO

bridge(docker 0)使用RFC1918私有网络,给每一个container分配Ip

通过ifconfig命令查看网卡状况,可以看到有一个veth的网卡信息,说明有一个正在运行的container

veth3ade  Link encap:以太网  硬件地址 16:08:11:a3:df:cc  
          inet6 地址: fe80::1408:11ff:fea3:dfcc/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  跃点数:1
          接收数据包:8 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:43 错误:0 丢弃:2 过载:0 载波:0
          碰撞:0 发送队列长度:1000
          接收字节:648 (648.0 B)  发送字节:6604 (6.6 KB)


网络设置:

通过--net参数来修改container的网络设置,默认是bridge的方式

none 表示关闭container的网络连接

host 表示使用主机的网络栈,这个时候host主机不会创建veth虚拟网卡映射

container:{name|id},使用另外一个container的网络栈

demo:

1.root@djhllpf123-All-Series:/# docker run -t busybox:ubuntu-14.04 sh -c "while true;do ifconfig;sleep 2;done"

写脚本让它打印出自己的网卡信息,这些信息只有自己能看到,其他主机看不到
eth0      Link encap:Ethernet  HWaddr FE:B3:41:32:15:00  
          inet addr:172.17.0.3  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::fcb3:41ff:fe32:1500/64 Scope:Link
          UP BROADCAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:2 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:90 (90.0 B)  TX bytes:90 (90.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:1500  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)
2root@djhllpf123-All-Series:/# docker run --net host -t busybox:ubuntu-14.04 sh -c "while true;do ifconfig;sleep 2;done"

修改docker网络设置使其输出宿主机的网络配置信息
docker0   Link encap:Ethernet  HWaddr 56:84:7A:FE:97:99  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::5484:7aff:fefe:9799/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1072 (1.0 KiB)  TX bytes:6437 (6.2 KiB)

eth0      Link encap:Ethernet  HWaddr 54:A0:50:51:77:60  
          inet addr:192.168.2.103  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::56a0:50ff:fe51:7760/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6959 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7803 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6290329 (5.9 MiB)  TX bytes:917710 (896.2 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1912 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1912 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:286410 (279.6 KiB)  TX bytes:286410 (279.6 KiB)

veth3ade  Link encap:Ethernet  HWaddr 16:08:11:A3:DF:CC  
          inet6 addr: fe80::1408:11ff:fea3:dfcc/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:54 errors:0 dropped:2 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:648 (648.0 B)  TX bytes:7553 (7.3 KiB)

veth47cf  Link encap:Ethernet  HWaddr B2:06:61:78:59:0F  
          inet6 addr: fe80::b006:61ff:fe78:590f/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:648 (648.0 B)  TX bytes:558 (558.0 B)

virbr0    Link encap:Ethernet  HWaddr 9A:69:CD:C1:3F:E3  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  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)

DNS

    默认使用Host的DNS配置

    可以通过--dns的参数来指定container自己的dns配置

端口映射

 Docker通过采用端口映射的方式,允许把内部的container暴露出来

Volume绑定

通过-v参数,可以把Host上的一个目录绑定到container中,允许container对其进行读写

Volume绑定

通过-v参数,可以把Host上的一个目录绑定到container中,允许container对其进行读写

demo:

将主机/mnt/test 映射到container的tmp目录下

root@djhllpf123-All-Series:/# docker run -v /mnt/test:/tmp -t busybox:ubuntu-14.04 ls -al tmp
total 8
drwxr-xr-x    2 root     root          4096 Jan 15 13:31 .
drwxr-xr-x   21 root     root          4096 Jan 15 13:35 ..
-rw-r--r--    1 root     root             0 Jan 15 13:30 hello1
-rw-r--r--    1 root     root             0 Jan 15 13:31 hello2
容器间的通信

通过Link参数,把container的端口信息暴露到另一个container中,实现container之间的通信





你可能感兴趣的:(Docker(2))