[Docker网络]模拟一台交换机的拓扑 本例主要对Docker网络进行实际运用. 背景介绍 一台虚拟机如何模拟成一台多端口交换机分别连接多台虚拟机? bridge网桥技术 实验准备 docker docker安装教程 busybox镜像 $ docker pull busybox bridge-utils $ apt-get install bridge-utils 实验拓扑 两台主机:h1,h2,一台交换机:s1. h1 <---> S1 <---> h2 实验步骤 <1…
简单来说,实现docker跨主机容器间通信,常用的第三方网络方案是Flannel,Weave,Calico:Flannel会为每个host分配一个subnet,容器从这个subnet中分配ip,这些ip可以在host间路由,容器间无需NAT和port mapping转发就可以实现跨主机通信.Flannel网络没有提供Docker DNS服务, 容器间不能通过hostname访问. Weave对于容器来说,它就像是一个巨大的以太网交换机, 所有容器都被接入到这个交换机,同样容器间无需NAT和por…
前面说到了Flannel的部署,今天这里说下Docker跨主机容器间网络通信的另一个工具Weave的使用.当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的是自己的私有IP地址,不同主机的容器之间进行通讯需要将主机的端口映射到容器的端口上,而且IP地址需要使用主机的IP地址.Weave正是为了解决这个问题而出现的,它把不同主机上容器互相连接的网络虚拟成一个类似于本地网络的网络. 如果了解SDN技术或者部署过OpenStack的网络模块(Neutron)…
引言 学习docker网络,可以带着下面两个问题来探讨 容器之间可以相互访问的原理 容器暴露端口后,通过宿主机访问到容器内应用,并且对于访问端而言不用感知容器存在的原理 Docker 本身的技术依赖Linux的内核虚拟化技术,所以为了能够更好的理解Docker的网络实现,必须要对牵扯到的主要技术做些了解 用到的主要Linux技术点 网络命名空间(Network Namespace) veth设备对 网桥 bridge(docker0) iptables netfilter 路由 网络命名空间 L…
好文必转 原文地址: http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-practice/ Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理.然而,Docker同样有着很多不完善的地方,网络 方面就是Docker比较薄弱的部分.因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求.本文首先介绍了Docker自身的4种网…
笔者在前文<Docker 网络之进阶篇>中介绍了 CNM(Container Network Model),并演示了 bridge 驱动下的 CNM 使用方式.为了深入理解 CNM 及最常用的 bridge 驱动,本文将探索 bridge 驱动的实现机制.说明:本文的演示环境为 ubuntu 16.04. dokcer0 网桥 在 Ubuntn 上安装 docker 后,宿主机上默认被创建了一个名为 docker0 的网卡,其 IP 为 172.17.0.1/16: 有了这个网卡,宿主机还会在…
Docker的本地网络实现其实就是利用了Linux上的网络命名空间和虚拟网络设备(特别是veth pair). 基本原理 直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包:此外,如果不同子网之间要进行通信,需要额外的路由机制. Docker中的网络接口默认都是虚拟的接口.虚拟接口的最大优势就是转发效率极高.这是因为Linux通过在内核中进行数据复制来实现虚拟接口之间的数据转发,即发送接口的发送缓存中的数据包将被直接复制到接收接口的接收缓存中,而…
Docker常用命令 docker version #查看版本 docker search centos #搜索可用docker镜像 docker images 查看当前docker所有镜像 docker pull centos 下载镜像 cat centos.tar |docker import - centos6_newname #导入Docker 导入镜像 docker export 容器id > centos6.tar #导出镜像 docker run centos echo "h…
macvlan接口类型简单说类似于子接口,但相比子接口来说,macvlan接口拥有自己独立的mac地址,因此使用macvlan接口可以允许更多的二层操作.macvlan有四种模式:VEPA,bridge,Private和Passthru macvlan接口会监听并接收链路上到达本mac地址的报文,因此macvlan(除bridge外)仅能向外部网络发送报文,并接受目的为本机mac的报文. +---------------+ | network stack | +---------------+…
当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的是自己的私有IP地址,不同主机的容器之间进行通讯需要将主机的端口映射到容器的端口上,而且IP地址需要使用主机的IP地址.Weave正是为了解决这个问题而出现的,它把不同主机上容器互相连接的网络虚拟成一个类似于本地网络的网络. Weave是在一个网络的基础上,构建了一层由软件定义的网络层,这个网络看起来就像是一个本地的局域网,但是实际上它的底层通过另一个网络进行通信.这个网络可能会比实际物理局域网的可靠性…