Docker 容器网络栈管理
1. 网络控制器概述
网络控制器是管理 Docker 容器网络的核心组件,每个网络控制器会引用以下内容:
- 数据结构驱动表中的一个或多个驱动。
- 数据结构中的一个或多个沙箱。
- 一个数据存储。
- 一个 IP 地址管理表(ipamTable)。
网络控制器位于 Docker 引擎、容器以及它们所连接的网络之间,负责处理 Docker 容器和 Docker 引擎之间的网络通信。
2. CNM 属性
CNM(Container Network Model)有以下两个重要属性:
- Options :这是用户不可见的键值对数据,用于提供一种灵活的机制,将特定于驱动程序的配置直接从用户传递给驱动程序。只有当键与已知标签匹配时,libnetwork 才会对这些选项进行操作,并获取由通用对象表示的值。
- Labels :这是选项的一个子集,是用户可以通过 UI 中的 --labels 选项设置的变量。其主要功能是执行特定于驱动程序的操作,并且是从 UI 传递过来的。
3. CNM 生命周期
CNM 的使用者通过 CNM 对象及其 API 来为他们管理的容器建立网络连接,驱动程序会向网络控制器注册。内置驱动程序在 libnetwork 内部注册,而远程驱动程序则使用插件机制向 libnetwork 注册。
以下是 CNM 生命周期中的主要操作流程:
超级会员免费看
订阅专栏 解锁全文
687

被折叠的 条评论
为什么被折叠?



