澳门电玩城所有网站

Docker v1.13 新功能

  Docker 1.13 发布已经26天了,趁着今天想起系统密码,更新了一下系统,顺便体验一下新版本的功能。

  因为我之前没有装过插件,一直都是乖乖用稳定版,所以像 docker plugin、docker stack这些子命令我都没有试过。因此本次升级没有卸载插件的步骤,不过你要是以前装了插件得先卸载,毕竟API变了。

  该版本更新内容较多,涉及到网络、插件、移除掉的 API & 客户端、运行时、安全性以及依赖等。

  Docker 1.13有一千四百多个issue/pull request,五千多个commits,是Docker历史上最高的发布版本。这并不是一个简单的小版本变化,里面有大量的更新。

  第一件事就是构建缓存,终于来了。这个功能在持续构建过程中太有用了,以前Docker只能自己自动利用本地构建缓存,现在可以指定构建缓存了,不过使用缓存的前提条件是曾经在本地构建过这个镜像。

  这个怎么翻译?算了,跟风保留“压扁”。这个对我个人来说效果不是很明显,因为我总是把全部RUN指令写到一起,以此减少镜像体积。

  但也总有人喜欢一句命令一个RUN指令,这样这个功能就很有用了。(话说这个写法真是不作不死。)

  正确的做法当然是遵循 Dockerfile 最佳实践,应该把多个命令合并为一个 RUN,每一个 RUN 要精心设计,确保安装构建最后进行清理。这样才可以降低镜像体积,以及最大化的利用构建缓存。

  不过Docker这么人性化,当然得为这些“一行一个RUN”的用户添加点功能,以此减少他们构建镜像的体积。

  同样是 docker build 的参数:--squash,你可以理解为Docker自动把多个RUN在同一文件层执行了,不过保留了每一个RUN的构建历史。

  这个我很少遇到过啊,一般都是直接改/etc/hosts文件,反正也不复杂,不过要是在分布网络里就麻烦了点。比如这个情况。

  这个我也不怎么遇到,毕竟我很少有项目需要持续构建啊。以前的设定是--build-arg后面的变量一定要在构建过程中用到,现在即使制定了不用也可以,不会构建失败。

  这样改的好处就是,在一些公司中持续构建过程中,不同Dockerfile使用不同的--build-arg参数,而持续构建中使用同一条构建指令(或者脚本)构建,1.12版本时是会报错的,1.13降为警告级别。

  上面的例子中安装Docker时会使用微软中国的镜像,至于安装后会不会自动添加仓库镜像源,我不知道啊。

  老实说这样不太好的感觉,新加入的容器很容易就玩坏整个集群呐,坏笑。在服务设计时多考虑一下就好了啊,安全为上。

  检查点,有点像赛车,跑到中途一个检查点,备份记录一下当时的状态,然后继续前进,需要时可以从某个检查点的状态恢复。这么一看挺像快照的功能,要是进入正式版,估计Eclipse Che那里的快照命名会有改进。

  这个反人类的设计终于有了人性化的改进,以前查看容器状态还得看容器ID,现在可以显示容器名了。

  docker ps 的一个参数,可以显示哪些容器是集群服务的容器,哪些是直接运行起来容器。还是有用的功能,不过我自己对容器命名都蛮严格的,不会乱到不认识,笑。

  邪恶的我试了一下,同时存在名为nginx镜像、容器、网络、服务的情况下,inspect会优先查看名为nginx容器的信息,查看其它同名对象的信息就需要使用ID了。

  dockerd --experimental就可以直接启用实验功能了,简直测试实验功能的利器,不需要重装Docker了。

  很多人在以前搞不懂自己的镜像到底占了多少空间、容器占了多少空间,卷占了多少空间。怎么删除不用的东西以释放资源。从 1.13 开始,Docker 提供了一组 system 命令来帮助系统管理上的问题。

  那个RECLAIMABLE居然那么大,吓我一跳,后来一想我电脑在家就运行两个容器,所以其他镜像都被识别为可回收的了。

  上面显示的列表中列出了镜像、容器、本地卷所占用的磁盘空间,以及可能回收的磁盘空间。比如,我们看到镜像有 123MB 的空间可以回收,从 1.13 开始,docker 提供了一组 prune 命令,分别是:

  一个值得提醒的是,这个版本的命令有了很多调整,虽然保留了1.12时候的风格,但是Docker已经开始更加合理地分配子命令。

  之前的命令依旧可以使用,会继续保持一段时间。但是从 1.13 开始,推荐使用各个子命令的版本了。

上一篇:爱情像花儿一样

下一篇:没有了