参考: http://hicu.be/docker-container-network-types
docker默认3中网络类型
参考: https://docs.docker.com/engine/userguide/networking/
- $ docker network ls
- NETWORK ID NAME DRIVER
- 7fca4eb8c647 bridge bridge
- 9f904ee27bf5 none null
- cf03ee007fb4 host host
- bridge 桥接到docker0网卡
- host 和宿主机共享网卡
- none 无网卡
手动创建net
手动创建net的类型是 bridge模式
- docker network create neta
- $ docker network list
- NETWORK ID NAME DRIVER SCOPE
- 19856a1ad2b4 neta bridge local
最佳实践
- - 分别启动b1 b2(neta)
- docker run -itd --name=b1 busybox
- docker run -itd --name=b2 --net=neta busybox
-
- - 查看他们ip
- docker exec -it b1 ip ad
- docker exec -it b2 ip ad
-
- - b2 ping b1 不通
- docker exec -it b2 ping 172.17.0.2
-
- - 将b1连到neta,再次ping通了
- docker network connect neta b1
- docker exec -it b2 ping 172.18.0.3
-
- - 查看b1,发现b1多了一块网卡
- $ docker exec -it b1 ip ad
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- 10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
- link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
- inet 172.17.0.2/16 scope global eth0
- valid_lft forever preferred_lft forever
- 14: eth1@if15: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
- link/ether 02:42:ac:12:00:03 brd ff:ff:ff:ff:ff:ff
- inet 172.18.0.3/16 scope global eth1
- valid_lft forever preferred_lft forever
-
-
- - 自定义的网卡自带dns
- $ docker exec -it b1 hostname
- 655e40ab3eed
- $ docker exec -it b2 hostname
- 3c821d2e8b05
- $ docker exec -it b2 ping 655e40ab3eed
- PING 655e40ab3eed (172.18.0.3): 56 data bytes
- 64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.085 ms
- 64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.129 ms
-
- - 默认dns是
- docker exec -it b2 cat /etc/resolv.conf
- nameserver 127.0.0.11
共享另一个容器的网卡
- - 启动b1
- $ docker run -itd --name b1 busybox
-
- - 启动b2,使之使用b1的网卡
- $ docker run -itd --net=container:b1 --name b2 busybox
-
-
- - 查看b1和b2的网卡 发现ip和mac一致
- $ docker exec b1 ip ad
- 4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
- link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
- inet 172.17.0.2/16 scope global eth0
- valid_lft forever preferred_lft forever
- $ docker exec b2 ip ad
- 4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
- link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
- inet 172.17.0.2/16 scope global eth0
- valid_lft forever preferred_lft forever
- dokcer cnm网络模式
- 网络插件
docker 原生的 driver 包括 none、bridge、overlay 和 macvlan
第三方 driver 包括 flannel、weave、calico 等。
加参数配置
docker和k8s的对比
docker网卡桥接