敲黑板,划重点: Docker 1.13 更新有哪些看点?

2017-02-06 18:38:48 +08:00
 dataman

开工啦开工啦!告别热闹的春节,新的一年又开始了,数人云带着干货,与大家共勉^_^

Docker 刚刚发布了 1.13 最新版,新添了很多特性让高可用服务的部署更加简单,同时也引入了一些命令和工作流程来改善 Docker 用户的开发体验。小伙伴可以在 GitHub 上看到完整的版本发布信息,本文为大家将更新的重点梳理出来,做一个总结。

调度更新

Docker1.13 包含一些在 Swarm Mode 下运行服务的改进更新。现在可以给滚动更新的镜像打上摘要标识(比 tag 更特别),在镜像拉取时服务有了更好的记录,减少了记录中的噪声和日志垃圾。对于docker service logs实验性的支持也加进来,集群中运行服务的日志观察有了一个更简单的方式。

更新以后,在 Swarm 集群上调度的任务,出错后更容易发现,错误信息也更加明确。调度算法会更平均地分配同类型的任务。

假设有两个容器运行服务 A ,三个容器运行服务 B 。最坏的情况是在一个两节点的集群,所有运行 A 的容器被调度在一个节点,所有运行 B 的容器在另一个。如果一个节点挂了,其中所有的服务都会不可用。通过调整调度器可以避免此种类型工作负载分配的发生。

新的删除指令确保系统健康

如果大家像笔者一样,那么docker ps -a | grep 'Exited' | awk '{print $1}' | xargs docker rm(或者更极端的docker rm -f $(docker ps -aq))以及docker rmi -f $(docker images -q)都是些每天要用上几次的命令,来保证工作空间的整洁。

Docker1.13 引入了prune命令,帮助确保系统健康,通过轻松删除无用资源减少 Docker 痕迹。运行docker system prune将会一键删除所有停止的容器,无用的镜像和网络 volume 。

如果你更喜欢rm命令,那也没关系,它们依旧工作,但是prune更简单。

全新的 CLI

Docker 在过去几年成长了许多,每次发布更新都为 CLI 添加了很多新鲜有趣的内容。然而, CLI 快速发展导致很多 Docker 的新用户很难理解它。在 Docker 1.13 , CLI 作出调整,聚焦于顶层资源的所有命令。最大的改变在于docker container作为容器的一个管理命令。旧的语法仍然可用,但是 Docker 鼓励用户开始使用新管理命令与 CLI 交互。

改进构建和缓存机制

缓存中毒是一个真正的威胁,从 1.10 版本开始,从远程镜像仓库使用镜像拉取时, Docker 的新特性可以保护镜像免于缓存毒害。在 1.10 之前,在主机创建新镜像时,并不采用从远程登录拉取镜像层。它同样适用于从一个可信源拉取镜像。

在 Docker 1.13 ,可以使用新的运行时标记--cache-from来指定你希望重建的镜像,使用的是从远程镜像仓库拉下来的镜像缓存。由你来决定镜像缓存是否可靠,从而远离缓存中毒。

此外, docker build 有了两个新标记,--compress--squash。当 Compress 被发送到 daemon ,它会通过压缩 build context 提升镜像构建速度。--squash仍然处于实验阶段,它会把镜像压到一层,在一定程度上简化构建过程,但是如果你严重依赖缓存,可能会导致比较难以实现。

Docker Compose V3 语法

Docker 1.13 包含一些全新的东西——一个升级和扩充的 Docker Compose 语法版本。我们把它称为 V3 ,这套语法有点与众不同,因为它是用来将 Docker 服务部署到一个 Swarm 集群。它与 V2 有很多相同之处,但是应该被看做另一个 DSL 。

使用一个 V3 文件,可以通过docker stack deploy --compose-file=docker-compose.yml轻松部署到 Swarm 集群。 V3 语法可以帮助统一 Docker Compose 文件,在开发和生产环境轻松切换。如果你对 V3 的细节感兴趣,可以在 GitHub repo docker/compose看其结构。

作者: Laura Frank 文章来源: https://blog.codeship.com/whats-new-docker-1-13/

1269 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/338538

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX