Docker四种基础网络类型:
- bridge 默认类型 NAT模式
- host host类型,使用宿主机网络,网络性能最高
- container 容器类型。使用其他容器共用网络,k8s中使用
- none 没有网络,上不了外网
macvlan的作用:
- 虚拟多个mac地址,虚拟出多个网卡给容器使用。
macvlan的缺点:
- 每次需要手动指定IP地址,分配IP地址(还要去手动的查看这个IP地址有没有被使用)
macvlan的优点:
- 性能好,和局域网其它服务器处于同一个网段
测试例子
1.在两台宿主机创建macvlan网络
#语法: docker network create --driver macvlan (要创建的网络类型) -- subnet子网IP段 --gateway本机网关 -o parent=本机网卡 创建的macvlan网络名称 #docker01创建的macvlan网络 [root@docker01 ~]# docker network create -d macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=eth0 macvlan_1 c8dad314488c444c78779ceaf6e3f18afe77182af3fad07f6c273791c38e2719 [root@docker01 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 2e44090ae9df bridge bridge local 4432d41fcf56 host host local c8dad314488c macvlan_1 macvlan local a2e63a998a4a none null local 2b0f87210447 zabbix_default bridge local #docker02创建的macvlan网络 [root@docker02 ~]# docker network create -d macvlan --subnet 10.0.0.0/24 98e6c0498a83c8f0a5e5d4c8af615c533c31dd3ea9ac37974f30bc957310c3fc [root@docker02 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 2274b56f544d bridge bridge local a5f0d48f3378 harbor_harbor bridge local 1bfdb4760e94 host host local 98e6c0498a83 macvlan_1 macvlan local 369a03a283d0 none null local
2.在两台宿主机启动容器并指定使用macvlan网络
#docker01创建的容器指定ip10.0.0.3 [root@docker01 ~]# docker run -it --network macvlan_1 --ip 10.0.0.3 alpine:latest / # #docker02创建的容器指定ip10.0.0.4 [root@docker02 ~]# docker run -it --network macvlan_1 --ip 10.0.0.4 alpine:latest / #
3.测试是否可以ping
#docker01创建的容器ping docker02创建的容器 / # ping 10.0.0.4 PING 10.0.0.4 (10.0.0.4): 56 data bytes 64 bytes from 10.0.0.4: seq=0 ttl=64 time=0.452 ms 64 bytes from 10.0.0.4: seq=1 ttl=64 time=0.387 ms 64 bytes from 10.0.0.4: seq=2 ttl=64 time=0.404 ms ^C --- 10.0.0.4 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.387/0.414/0.452 ms
微信赞赏
支付宝赞赏