5月1日,Docker 发布了自家的容器网络管理项目 libnetwork,libnetwork 使用 Go 语言编写,目标是定义一个容器网络模型(CNM),并为应用程序提供一致的编程接口以及网络抽象。目前 libnetwork 仍在全力开发中,并没有达到使用标准。
3月的时候,Docker 公司收购了 SDN 技术创业公司 SocketPlane,以构建一个健康的容器网络生态系统。于是本周,在网络合作伙伴 Cisco、IBM、Joyent、Microsoft、Rancher、VMware 和 Weave 的帮助下,Docker 对外发布了开源项目 libnetwork。Libnetwork 一开始的代码只是 libcontainer 和 Docker Engine 中网络部分代码的合并,Docker 官方的愿景是希望 libnetwork 能像 libcontainer 一样,成为一个多平台的容器网络基础包。
受之前的一个GitHub issue启发,libnetwork 引入了容器网络模型(CNM)的概念,CNM 定义了三个新的术语,分别是网络沙箱、Endpoint、Network。网络沙箱指的是在每一个容器中,将会有一个隔离的用于网络配置的环境。Endpoint 是一个网络接口,可用于某一网络上的交流。Network 是一个唯一的且可识别的Endpoint组。
从官方博客中得知,设计这样一个可插拔的网络接口非常困难,因为网络部分的工作涉及Docker Engine和libcontainer。值得高兴的是,现在 Docker 公司正在使用 CNM API 重写 Docker 的 bridge 网络(docker0)。
接下来,Docker 公司将会把 libnetwork 集成到 Docker Engine,并在 Docker CLI 中使用新的网络命令。具体的项目路线图读者可以参考 GitHub。
另外,从官方邮件中得知,Docker 公司正准备进军中国。目前他们正在招聘中国区的主管,以运营中国社区,并进一步扩展 Docker 的影响力。新的主管直接汇报给 CFO。具体信息读者可以参看具体的 JD。