51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)

本章开始讨论 Docker 网络。

我们会首先学习 Docker 提供的几种原生网络,以及如何创建自定义网络。然后探讨容器之间如何通信,以及容器与外界如何交互。

Docker 网络从覆盖范围可分为单个 host 上的容器网络和跨多个 host 的网络,本章重点讨论前一种。对于更为复杂的多 host 容器网络,我们会在后面进阶技术章节单独讨论。

Docker 安装时会自动在 host 上创建三个网络,我们可用 docker network ls 命令查看:

none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)_https://www.tiejiang.org_每天5分钟Docker_第1张

下面我们分别讨论它们。

none 网络 {#none-}

故名思议,none 网络就是什么都没有的网络。挂在这个网络下的容器除了 lo,没有其他任何网卡。容器创建时,可以通过 --network=none 指定使用 none 网络。

none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)_https://www.tiejiang.org_每天5分钟Docker_第2张

我们不禁会问,这样一个封闭的网络有什么用呢?

其实还真有应用场景。封闭意味着隔离,一些对安全性要求高并且不需要联网的应用可以使用 none 网络。

比如某个容器的唯一用途是生成随机密码,就可以放到 none 网络中避免密码被窃取。

当然大部分容器是需要网络的,我们接着看 host 网络。

host 网络 {#host-}

连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样。可以通过 --network=host 指定使用 host 网络。

none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)_https://www.tiejiang.org_每天5分钟Docker_第3张

在容器中可以看到 host 的所有网卡,并且连 hostname 也是 host 的。host 网络的使用场景又是什么呢?

直接使用 Docker host 的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,则可以选择 host 网络。当然不便之处就是牺牲一些灵活性,比如要考虑端口冲突问题,Docker host 上已经使用的端口就不能再用了。

Docker host 的另一个用途是让容器可以直接配置 host 网路。比如某些跨 host 的网络解决方案,其本身也是以容器方式运行的,这些方案需要对网络进行配置,比如管理 iptables,大家将会在后面进阶技术章节看到。

下一节讨论应用更广的 bridge 网络。

赞(0)
未经允许不得转载:工具盒子 » none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)