对于了解Docker容器网络的朋友,我想对虚拟机的网络也不会陌生,毕竟我们是跟随这个时代一起学习和进步的人.相比VM,Docker的网络也在逐步走向成熟,本文主要针对其中的macvlan做下简单的介绍. Why macvlan? 首先我们去对比下VM和Docker中不同的网络,这样会比较清楚. VM Docker NAT bridge Bridged macvlan, overlay等 Host-only bridge NAT VM中的NAT对应Docker中的bridge,虽然叫bridge,…
一.什么是macvlan 1.macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址, 2.即多个 interface,每个 interface 可以配置自己的 IP. 3.macvlan 本质上是一种网卡虚拟化技术 二.跨主机通信 1.创建macvlan 1.主机luoahong [root@luoahong ~]# docker network create --driver macvlan --subnet 10.0.0.0/24 --…
按照Qemu-4.1 桥接网络设置中介绍的方法建立起桥接网络后,可以实现虚拟机和host的相互ping,但是在虚拟机里去ping其他跟host处于同一个网段的ip地址时却失败了,然后ifconfig后发现有一个叫做docker0的网桥,这是安装docker-ce时自动创建的,将docker0删除仍然无法ping通,索性将docker-ce卸载,然后重启电脑,这样虚拟机就可以ping通其他ip地址,配置上DNS和Gateway后,也可以ping通www.baidu.com. google了半天,发…
在上一篇了解了关于 docker 的网络模型后,本篇就基于上一篇的基础来实现 docker 的跨主机通信. 注:环境为 CentOS7,docker 19.03. 本篇会尝试使用几种不同的方式来实现跨主机方式 环境准备 准备两台或以上的主机或者虚拟机,相关环境如下: 主机1:配置两张网卡 br0 192.168.10.10,ens33桥接br0,ens37(不需要IP),docker环境 主机2:配置两张网卡 br0 192.168.10.11,ens33桥接br0,ens37(不需要IP),d…
除了ovrlay,docker还开发了另一个支持跨主机容器的driver:macvlan macvlan本身是linu kernel模块,其功能是允许在同一物理网卡上配置多了MAC地址,即:多个interface,每个interface可以配置自己的ip.macvlan本身是一种网卡虚拟化技术,Docker用macvlan实现容器网络就不奇怪了 macvlan最大的优点是性能极好,相比其他方案,macvlan不需要创建Linux bridge,而是直接通过以太interface连接到物理网络.…
前言 当一台服务器上部署了多个应用容器,它们直接可能需要相互通信,比如web应用容器需要访问mysql数据库容器. 主机访问容器 通过映射端口的形式我们可以在外部访问容器内的服务 # 将主机的127.0.0.1:5001映射到容器的5000端口 docker run -p 127.0.0.1:5001:5000 training/webapp python app.py # 将主机的80映射到容器的80端口 docker run -p 80:80 training/webapp python a…
在前面详细讲解了几种网络模式:none,host,bridge,container.他们解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信. 跨主机网络方案包括两大类: 1,docker原生的:overlay和macvlan 2,第三方方案:flannel.weave和calico overlay Docker overlay网络需要一个key-value数据库用于保存网络状态信息,包括Network.Endpoint.IP等. consul.Etcd.Zookeeper都是Do…
一.Flannel网络简介 Flannel是一种基于overlay网络的跨主机容器网络解决方案,也就是将TCP数据包封装在另一种网络包里面进行路由转发和通信,Flannel是CoreOS开发,专门用于docker多机互联的一个工具,让集群中的不同节点主机创建的容器都具有全集群唯一的虚拟ip地址,Flannel使用go语言编写 二.Flannel实现原理 2.1.原理说明 1.Flannel为每个host分配一个subnet,容器从这个subnet中分配IP,这些IP可以在host间路由,容器间无…
一.前言 当我们开发好微服务之后,考虑到灵活快速持续部署的需要,通常会考虑将其Docker镜像化并在Docker环境下运行.由于微服务个数通常会较多,把所有微服务部署在一台docker主机上是不现实的,因此需要考虑到跨主机通信的问题,对实际部署必然会提出以下几点要求: 1. 微服务作为一个docker container可以在任意host上运行: 2. 同一host上可以运行多个相同的微服务: 3. 运行在同一个host上的微服务之间可以相互通信: 4. 运行在不同host上的微服务也可以相互通…
VirtualBox安装RHEL之后配置桥接网络 1 如果主机是Intel (R) Ethernet Connection I217-LM上网的: 2 如果主机是无线上网的, 如ipconfig显示如下: 无线局域网适配器 无线网络连接:   连接特定的 DNS 后缀 . . . . . . . : ztgame.com   本地链接 IPv6 地址. . . . . . . . : fe80::f5ce:3478:699:1224%12   IPv4 地址 . . . . . . . . .…