Docker学习(11) Docker 网络(上)

Docker学习(11) Docker 网络

  • Docker网络体系的基本原理:容器网络模型、以及Libnetwork

Docker网络简介

  • Docker的网络架构源自一个叫做容器网络模型(CNM)
  • Libnetwork是Docker对CNM的一种实现,提供了Docker核心网络架构的全部功能。
  • 为了实现开箱即用的效果,Docker封装了一系列的本地驱动,包括:
      1. 单机桥接网络(Single-Host Brige Network)
      2. 多机覆盖网络(Multi-Host Overlay)
  • Libnetwork提供了本地服务发现和容器的负载均衡解决方案。

Docker网络——详解

基础理论

  • Docker的网络架构主要由3个部分过程:CNM、Libnetwork和驱动

CNM

  • CNM是docker网络的设计标准:规定了Docker网络架构的基础组成要素。
  • 具体内容:https://github.com/docker/libnetwork
  • CNM定义了三个基本要素:沙盒(Sandbox)、终端(Endpoint)和网络(network)
    • 沙盒:独立的网络桟,包括以太网的接口、端口、路由表以及NDS配置。
    • 终端:虚拟网络接口,和普通网络接口一样,主要负责创建网络,在CNM中,主要是将沙盒连接到网络
    • 网络:是802.1d网桥的软件实现,网络就是需要交互终端的集合,并且终端直接相互集合。
  • docker环境中最小的调度单位是容器。

Libnetwork

  • Libnetwork是CNM的具体实现,通过Go语言编写的,实现了CNM列出的核心组件。
  • Libnetwork实现了CNM定义的3个组件。还实现了本地发现功能,基于Ingress的容器负载均衡,以及网络控制层和管理层的功能。

驱动

  • 通过实现特定网络拓扑的方式来拓扑该模型的能力。

  • 驱动负责实现了网络的数据层。

  • Docker封装了内置驱动,包括bridge,Overlay以及macvlan

你可能感兴趣的:(Docker学习(11) Docker 网络(上))