近日,Docker公司 正式发布Docker 1.9版本 。该版本包含了正式用于产品的Swarm和多宿主机互联功能,为Docker引擎添加了新的卷管理系统,并修改了Compose使其更好的支持多种环境。
为了更好的使用容器来完成相关工作,Docker提出了一整套的解决方案——互联(Networking)负责创建虚拟网络,为容器间通信提供支持;Docker 引擎中新的卷管理系统负责为数据永久存储提供帮助;在这些基础上,Compose负责运行应用程序。总而言之,该版本进行了重大升级,为扩展分布式应用产品提供了基础。
在今年6月份的DockerCon上,互联曾经作为测试版本的特性被 提出 。目前,该特性正式集成在了Docker引擎的稳定版中,并将在产品中使用。其主要功能是为跨宿主机创建Docker引擎中的虚拟网络提供支持。用户可以把其所属的容器挂载到网络中,并控制网络拓扑和通信方式。此外,系统还允许用户在不修改应用的情况下直接与任何网络进行集成。更多详情可以参考Docker官网中的 互联专题博客 和Docker的相关工程师即将举行的 专题在线会议 。
永久性存储是很多分布式应用一直想要使用的功能。在Docker 1.8中,用户已经可以通过卷插件和第三方的存储系统实现该功能。为了更好的满足用户需求,Docker 1.9直接内置了一个全新的卷管理系统,使得用户可以更加见得的使用插件。而且,该系统可以和Swarm协同工作,实现集群内永久性存储的管理。通过以下例子,即可看出新系统使用 Flocker插件 的便捷程度:
$ docker volume create -d flocker --name=myvolume $ docker run -v myvolume:/data busybox sh -c "echo hello > /data/file.txt" $ docker run -v myvolume:/data busybox sh -c "cat /data/file.txt"
此外,系统还提供了用于 Blockbridge 、 Ceph 、 ClusterHQ 、 EMC 和 Portworx 的驱动器。更多细节可以参考 卷文档 和 卷插件文档 。
Swarm是一个为Docker引擎服务的原生集群系统。在新的版本中,Docker公司对Swarm进行了重新测试和升级,消除了若干bug,并进行了性能优化。Docker公司表示,和互联以及卷管理系统结合在一起,Swarm完全可以用于用户产品。而且,Docker公司已经在1000个节点/30000个容器规模下进行测试,工作正常。
新版的Docker引擎中加入了一些新的特性:
docker build
来定制编译镜像的方式。例如,用户可以通过设置 HTTP_PROXY
来定制一个依赖包的安装版本等。 STOPSIGNAL
Dockerfile指令,允许用户可以定制化运行 docker stop
时的信号。 docker stats
可以直接显示磁盘的I/O情况。 Docker引擎的完整特性列表可以参看 版本说明 。
Compose是一个定义和运行多容器应用程序的工具。该版本中新添加的特性如下:
Compose的完整特性列表可以参看 版本说明 。
用户可以通过 Docker工具箱 来使用所有在开发中的工具。它包含了以上所有工具的最新版本,并将其集成为了一个统一的安装包。此外,它还包括了在个人电脑和云提供商处创建Docker引擎的Machine 0.5工具。而Machine目前一经拥有了可插拔的驱动器。对于目前部支持Docker容器的云平台,用户可以编写自己的驱动器。
该版本Registry的新添加特性如下:
Registry的完整特性列表可以参看 版本说明 。
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 )。