资讯专栏INFORMATION COLUMN

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

toddmark / 3592人阅读

摘要:调度更新包含一些在下运行服务的改进更新。引入了命令,帮助确保系统健康,通过轻松删除无用资源减少痕迹。在,作出调整,聚焦于顶层资源的所有命令。我们把它称为,这套语法有点与众不同,因为它是用来将服务部署到一个集群。

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

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/wha...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26786.html

相关文章

  • gitlab-ci坑后感与指北

    摘要:本文的目的最主要是备忘其次是分享疗效并不能让你一下子掌握这只是一个比较完整的解决方案其他基础知识自行补充基调首先这不是屠龙刀不要奢望一篇文章可以走遍天下这里只是提供一个具体的落地方案一个具体的技术选型阶段代码仓库关于代码仓库本文选取的方案是 本文的目的:最主要是备忘, 其次是分享 疗效: 并不能让你一下子掌握CI/CD, 这只是一个比较完整的解决方案,其他基础知识,自行补充. 基调...

    jerry 评论0 收藏0
  • HTML 链接、表单【实用】

    摘要:这一章的核心是新开一个窗口用了它页面可能会卡想嵌套页面的时候用默认高度宽度是可替换标签第一种写法第二种写法要和一起用标签的属性下载不加也会下载加和不加的区别由响应决定响应的是那么浏览器会以下载的形式接收请求而不是在页面展示如果写的是又 这一章的核心是HTTP iframe 新开一个窗口 用了它页面可能会卡... 想嵌套页面的时候用(iframe默认 高度50 宽度100)【是可替换标签...

    nanfeiyan 评论0 收藏0
  • 用小猪佩奇说明Javascript的原型和原型链

    摘要:它指向构造函数的原型对象这是原型对象上的一个指向构造函数的属性。先看代码的构造函数创建一个的实例,小猪佩奇敲黑板,划重点,理解这一句整个问题的关键,请多重复几遍。也就是说小猪佩奇的原型,就是从继承来的写成代码就是这个样子。   没错,我就是标题党!你已经成功被我骗进来了。来都来了,那就聊聊再走呗!接下来就听我一本正经地跟你说道说道。   Javascript的原型是这门语言的一个重点和...

    vibiu 评论0 收藏0
  • javascript 闭包

    摘要:现在可以画一个基本的闭包出来了三种传递方法分开看,你可以的。二循环中的闭包说到循环闭包就要掏出大家耳熟能详的栗子了。外部包装函数返回值至少引用一个内部函数创建包装函数内部作用域闭包。 闭包 一、闭包是什么? 将一个 词法作用域 中的 内部函数 作为一个 一级值类型 到处传递,就形成了闭包。 怎么去理解呢?这里要敲黑板划重点了,上面的概念性文字介绍了三个点: 词法作用域(函数) 内部函...

    xiangzhihong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<