Docker 1.9 正式发布,支持 Swarm 和多宿主机互联

阅读数:3397 2015 年 11 月 6 日

话题:语言 & 开发架构

近日,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"

此外,系统还提供了用于BlockbridgeCephClusterHQEMCPortworx的驱动器。更多细节可以参考卷文档卷插件文档

Docker Swarm 1.0

Swarm 是一个为 Docker 引擎服务的原生集群系统。在新的版本中,Docker 公司对 Swarm 进行了重新测试和升级,消除了若干 bug,并进行了性能优化。Docker 公司表示,和互联以及卷管理系统结合在一起,Swarm 完全可以用于用户产品。而且,Docker 公司已经在 1000 个节点 /30000 个容器规模下进行测试,工作正常。

Docker 引擎 1.9

新版的 Docker 引擎中加入了一些新的特性:

  • Dockerfile 中的编译时参数:用户可以在 Dockerfile 中定义参数,然后传递给docker build来定制编译镜像的方式。例如,用户可以通过设置HTTP_PROXY来定制一个依赖包的安装版本等。
  • 并发式拉取镜像:如果用户想要拉取的镜像已经在拉取列表中,系统会显示拉取进度,并正确退出命令。否则,系统会同时进行多个镜像的拉取。
  • 定制化停止信号:引擎中添加了一个STOPSIGNAL Dockerfile 指令,允许用户可以定制化运行docker stop时的信号。
  • AWS CloudWatch 记录驱动:如果用户使用 AWS 服务,新版引擎支持将容器日志直接发送到 CloudWatch。
  • 磁盘 I/O 统计:docker stats可以直接显示磁盘的 I/O 情况。

Docker 引擎的完整特性列表可以参看版本说明

Docker Compose 1.5

Compose 是一个定义和运行多容器应用程序的工具。该版本中新添加的特性如下:

  • 支持 Windows:Compose 目前可运行在 Windows 环境中,并已经集成在Windows 版本的 Docker 工具箱中。
  • Compose 文件中的环境变量:通过使用环境变量,用户可以使得 Compose 文件中的任何内容在运行时可配置。
  • 更好的支持多种环境:用户可以指定一个单独的基础文件,来描述应用程序的结构和开发 / 测试 / 产品流程中的重载情况。
  • 和互联集成在了一起:用户可以部署一个跨多个宿主机的 Compose 应用。
  • Compose 文件的验证:Compose 目前可以彻底验证用户的 Compose 文件,并将错误信息进行输出。

Compose 的完整特性列表可以参看版本说明

Docker 工具箱

用户可以通过Docker 工具箱来使用所有在开发中的工具。它包含了以上所有工具的最新版本,并将其集成为了一个统一的安装包。此外,它还包括了在个人电脑和云提供商处创建 Docker 引擎的 Machine 0.5 工具。而 Machine 目前一经拥有了可插拔的驱动器。对于目前部支持 Docker 容器的云平台,用户可以编写自己的驱动器。

Docker Registry 2.2

该版本 Registry 的新添加特性如下:

  • 支持 Google 云存储:用户可以把层和 manifest 文件存储到 Google 云平台中。
  • 只读模式:该模式可用于防止不安全的管理员级别任务修改系统文件。
  • 可配置的文件存在检查和 HTTP 健康检查:管理员可以通过放置一个文件在文件系统中来临时关闭 Registry。Registry 可以通过配置,来检查通知端点等其他服务器的健康程度。
  • 可配置的 HTTP 响应头:用户可以定制 Registry 的 HTTP 响应头,提供安全或处理速度等。

Registry 的完整特性列表可以参看版本说明


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。