ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 产品设计 >> Docker 网络基础介绍

Docker 网络基础介绍(1/4)

来源:网络整理     时间:2016-05-23     关键词:docker,网络基础

本篇文章主要介绍了"Docker 网络基础介绍",主要涉及到docker,网络基础方面的内容,对于产品设计感兴趣的同学可以参考一下:   当你开始扩大 Docker 的应用范围时,忽然发现,你需要了解很多关于网络的知识。作为 Docker 网络的入门介绍,本文将从小处着手,首先你要考虑如何管理...

  当你开始扩大 Docker 的应用范围时,忽然发现,你需要了解很多关于网络的知识。作为 Docker 网络的入门介绍,本文将从小处着手,首先你要考虑如何管理容器之间的连接。Docker 容器需要有个主机才能运行,该主机既可以是实体机器(例如:企业数据中心的裸机服务器),也可以是 on-prem 或云中的虚拟机。如图一所示,主机上会运行 Docker 后台程序与 Docker 客户端。一方面,你可以与 Docker 注册表交互(pull 或 push Docker 图片);另一方面,也可以启动、停止或监视容器。

docker 网络,docker 网络 桥接,docker 网络管理,docker 网络设置,docker 网络模式,docker 基础镜像,docker 网络性能,docker基础培训 pp

  图1. 简化版 Docker 架构(单主机)

  主机与容器之间的关系为 1:N。也就是说,一个主机上通常会运行着多个容器。例如,Facebook 报告称,取决于机器的规模,每个主机上平均运行着10到40个容器。此外,Mesosphere 对裸机进行的多项负载测试结果显示,在每个主机上运行250以内的容器是可能的。

  不过,无论是单主机部署模式,还是采用了机器集群,你都不可避免地需要面对网络:

  对大多数单主机部署而言,问题可以归结为通过共享卷组(shared volume)进行数据交换还是通过网络(基于 HTTP 或其他协议)进行数据交换。尽管 Docker 数据卷组简单易用,但也会导致紧密耦合,这意味着更难将单主机部署转变为多主机部署。通常,共享卷组的优势在于数据处理速度。

  在多主机部署中,你需要考虑两个方面:单个主机内的容器如何相互交流?不同主机之间的容器又如何交流?性能考虑与安全要素都将影响你的设计决定。当单主机的容量无法满足需求(请参考前文关于单主机承载的平均容器数及最大容器数的讨论),或打算使用诸如 Apache Spark, HDFS 或 Cassandra 之类的分布式系统时,多主机部署就变得必不可少了。

  分布式系统与数据局部性

  使用分布式系统(进行计算或存储)的主要好处通常来自并发处理,后者常常伴随数据局部性。此处,数据局部性是指将代码发布至数据所处位置的原则,而不是传统的那样倒过来。试思考以下情况:如果你的数据集大小以 TB 计,而代码量以 MB 计,在集群中移动代码其实比将多个 TB 的数据移至中央处理区更加高效。除了获得并发处理的优势,分布式系统还具备更好的容错性,因为系统的一些部分仍或多或少保留了独立运转的能力。

  简而言之,Docker 网络是 Docker 提供的原生容器 SDN 解决方法。概括来说,Docker 网络提供了四种可选模式:桥接模式、主机模式、容器模式以及无网络模式。本文将逐一讨论这四种模式与单主机配置相关的内容,并在文末总结时提及诸如安全之类的一般话题。

  桥接模式网络

  在此模式下(参考图2),Docker 后台程序会创建 docker0,一个虚拟的以太网桥,用于自动转发与之连接的任意网络接口间的数据包。默认情况下,该后台进程会创建一对对等接口(peer interface),分派其一为容器的 eth0 接口,另一个则分派在主机的命名空间下,同时从私有 IP 地址范围中为该桥接分配一个 IP 地址或子网络,由此,同一主机上的所有容器都连接到此内网中。

  实例1. 运行中的 Docker 桥接模式网络

  $ docker run -d -P --net=bridge nginx:1.9.1$ docker ps

  CONTAINER ID IMAGE COMMAND CREATED

  STATUS PORTS NAMES17d447b7425d nginx:1.9.1 nginx -g 19 seconds ago

  Up 18 seconds 0.0.0.0:49153->443/tcp, 0.0.0.0:49154->80/tcp trusting_feynman

  注意

相关图片

相关文章