用于运行没有网络类型的docker容器的用例

时间:2017-12-24 17:43:27

标签: docker networking

我知道docker没有网络类型,没有为容器分配IP地址,除了loopback接口外没有创建网络接口。

我想知道我们可以使用none网络类型的任何用例,我的意思是在哪种情况下我们需要运行没有IP或接口的容器。

我已经提到了这个question,但它没有回答我们可以使用它的确切用例。

2 个答案:

答案 0 :(得分:1)

首先,如weaveworks/weave issue 1394中所述:

  

--net=none的含义尚不清楚。这可能意味着“根本没有网络”#34; (在这种情况下,编织网络也应该被禁用),或者#34;没有Docker网络" (这是我在这里选择的解释)。

这就是wave network正在做的事情:

  

我们使用--net=none创建网络命名空间,注入编织界面,然后启动实际容器   我们还在具有外部连接的编织网络中运行默认网关。

     

我们这样做的原因是服务倾向于绑定到错误的接口。在容器启动之前创建单个界面非常重要

您会在 Calico ;

中找到类似的用例
  

本教程介绍如何在没有Docker网络(即–net=none)的Docker环境中设置Calico群集。

     

使用此选项,Docker会创建一个具有自己的网络堆栈的容器,但不会采取任何步骤来配置其网络。
  在本教程中,我们使用calicoctl命令行工具将容器添加到Calico网络中,而不是让Docker配置网络:添加所需的接口和路由到容器,并使用正确的端点信息配置Calico

答案 1 :(得分:1)

谢谢@VonC我从你的回答中得到了一个想法。

似乎docker none网络类型被其他网络插件(如印花布,编织等)用来提供自己的网络堆栈。

Docker网络模型基于CNM(容器网络模型),而另一种模型称为CNI(容器网络接口),网络分布如calico,weave等使用。

我猜这些网络插件(使用CNI模型的网络插件)使用none网络类型,因此在没有网络的情况下创建了一个容器,这些容器在这些网络上提供了自己的网络。