docker跨宿主机docker容器间的通讯之macvlan

Docker四种基础网络类型:

  • bridge 默认类型 NAT模式
  • host host类型,使用宿主机网络,网络性能最高
  • container 容器类型。使用其他容器共用网络,k8s中使用
  • none 没有网络,上不了外网

macvlan的作用:

  • 虚拟多个mac地址,虚拟出多个网卡给容器使用。

macvlan的缺点:

  • 每次需要手动指定IP地址,分配IP地址(还要去手动的查看这个IP地址有没有被使用)

macvlan的优点:

  1. 性能好,和局域网其它服务器处于同一个网段

 

 

测试例子

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
赞赏

微信赞赏支付宝赞赏

Docker

docker跨宿主机容器间的通讯之overlay

2020-3-6 8:37:59

Docker

docker-registry仓库镜像迁移至harbor仓库

2020-3-6 9:18:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索