Docker 1.12 在今年 6 月下旬的 DockerCon 2016 上就崭露头角,然而,却在 7 月底的今天才发布,真可谓"千呼万唤始出来"。如果了解 Docker 的 Roadmap ,就会发现此次大版本的变革,用“里程碑”和“划时代”来形容绝对不为过。总结而言,重大版本的亮点绝不容错过,归纳如下:
深入了解一个软件新版本的动向,往往可以借助版本的 ChangeLog ,下文将带领大家领略 Docker 1.12 版本相较之前的变化。从变化中嗅方向,从方向中探未来。
该功能直接允许开发者来定义自身程序的监控方式,完成应用的健康检查,弥合运维人员眼中监控与开发预期监控不匹配的鸿沟,此举将在监控领域给 DevOps 开启一盏明灯。
#escape=
,支持与平台架构相关的文件路径解析值得一提的是:该 BUG 的修复,源于 DaoCloud 公有云用户在使用镜像构建服务时,其 Github 代码仓库中的 Dockerfile ,是使用 Windows 平台上的 notepad 软件编辑而来,从而产生 UTF-8 BOM 。该用户通过运营工具 DaoVoice 第一时间反馈给 DaoCloud 工程师后, DaoCloud 迅速将该隐藏 BUG 汇报 Docker 社区并提交 PR 解决。
--max-concurrent-downloads
和 --max-concurrent-uploads
,使得下载镜像时,满足网络不支持多任务下载 /上传的场景。ALL_PROXY
这个环境变量docker load
时, Docker Daemon 提供更多信息DGRAM
套接字docker logs
命令中添加 --details
选项,帮助用户获取日志标签rfc5424micro
,以便实现微秒解析/docker
,而是采用 {{.DaemonName}}
,这样的话可以保证让用户有权限来修改该前缀ingress
的 overlay 网络实现路由网控制平面
和 数据平面
,来加强多节点 overlay 网络的安全性MacVlan
驱动已经处于试验版本docker network ls
命令中添加针对 driver
的过滤docker ps --filter
命令中添加针对 network
的过滤create
,run
,network connect
命令添加一个参数 --link-local-ip
,以允许用户指定容器的内部连接地址docker network inspect -f {{.Id}}
和 docker network inspect -f {{.ID}}
来说明输出内容的不一致性plugin
命令来管理各种插件,同时实现了该命令下的子命令 install
,enbale
,disable
,rm
,inspect
,set
docker(client)
以及 dockerd(daemon)
docker images --filter
命令添加两种类型的过滤筛选 before
和 after
docker search
命令添加了新的参数 --limit
docker search
命令添加了新的参数 --filter
docker info
的输出中添加了安全选项docker info
的输出中添加了 insecure registry
devicemapper
方面,通过 docker info
展现 Thin Pool 的最小剩余空间docker run -i --restart
命令在 exit 时候经常会夯住的问题docker stats
命令关于内存展示的不一致性--live-restore
的参数,使得当 Docker Daemon 停止运行时,容器仍然可以保持运行,另外在 Docker Daemon 重新之后,又获取这部分容器的控制权create
和 run
命令中通过 --runtime
参数选择其中之一overlay2
,该特性专门为 Linux 4.0+ 的环境服务,可以提供多种更为底层的目录实现docker run
命令中指定容器复用其他容器的 PID namespace :docker run --pid=container:<id>
daemon reload
此 PR 的提交由 DaoCloud 的工程师提交, pprof 是 Golang 语言下非常方面的性能监控工具,此举可以有效提高 Docker Daemon 的运行时监控
detach
事件--sysctl
参数支持docker run
和 docker create
命令中添加了参数 --storage-opt
,以允许用户设置 devicemapper
的大小--oom-score-adjust
并赋予默认值 -500
,以保证在宿主机发生 OOM 状况时, docker daemon 和容器相比,容器更有可能被杀死run
,build
,create
,update
命令时,重新启动 -c
参数作为 --cpu-shares
的缩称Created
的容器不再出现在 docker ps -a -f exited=0
命令的显示结果中Removal In Progress
状态的问题--detach-keys
参数时的 BUG ,在这里当输入时 detach key 的一个前缀时,这种情况不会被保留/etc/hosts
,/etc/resolv.conf
,/etc/hostname
不再是 SELinux 标记的--tmpfs
和挂载参数之间的不一致docker stats
命令陈列容器发生错误时,容器不能被删除的 BUGon-failure
重启策略失效的 BUGdocker stats
命令失效的 BUGswarm
命令来管理 swarm ,其中管理的子命令有 init
,join
,leave
和 update
service
命令来管理与 swarm 相关的服务,其中实现的子命令有 create
,inspect
,update
,remove
和 tasks
node
命令来支持管理集群中的 Docker Engine ,其中实现的字命令有 accept
,promote
,demote
,inspect
,update
,tasks
,ls
和 rm
stack
和 deploy
,用以管理部署多服务融合的分布式应用虽然
docker stack
命令目前仍然处于试验版本,但是 DaoCloud 的工程师已经在该功能中发现 Issue 并提交了不少 PR 。帮助 Docker 用户尽体验完善的容器编排 stack 功能。
local
和 global
,和网络的范围属性类似Status
域name/driver
的过滤支持Docker Daemon 的发展历程中,对于新功能的加入,和旧功能的删除都有着严谨的态度。对于即将弃用的功能, Docker 首先会将其设置为 deprecated
,随后在过去的若干时间之内再将其移除,给予用户充足缓冲区的同时,也保证了代码的整洁程度。
DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE
和 DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE
已经被重命名为 DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE
和 DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE
syslog-tag
,gelf-tag
和 fluentd-tag
,从而支持更通用的 tag
日志选项docker tag
命令中的 -f/--force
参数/containers/<id|name>/copy
的 URLdocker import
命令中老的三个参数的形式。这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.