今天,Docker 官方网站正式发布了 1.2.0 版本,改进内容包括 Docker 引擎、Docker Hub 和文档。
值得关注的新特性包括:
重启策略
docker 命令增加了 --restart 参数来指定容器的重启策略,当前提供的策略包括:
no - 默认值,如果容器挂掉不自动重启
on-failure - 当容器以非 0 码退出时重启容器
同时可接受一个可选的最大重启次数参数 (e.g. on-failure:5).
always - 不管退出码是多少都要重启
废弃了 Docker 守护进程的 --restart 参数
一些简单的例子:
Redis 将在容器退出时自动重启
docker run --restart=always redis
如果 redis 以非 0 退出时,尝试重启 5 次
docker run --restart=on-failure:5 redis
-cap-add 和 -cap-drop
当前 Docker 容器可以得到所有的功能,或者通过一个白名单。之前可以使用 --privileged 来允许在容器中使用所有功能,这在产品环境中是不推荐使用的。而新版本引入两个参数 --cap-add 和 --cap-drop 给你更好的控制功能使用的方法:
A few examples:
更改容器接口状态
docker run --cap-add=NET_ADMIN ubuntu sh -c "ip link eth0 down"
阻止使用 chown 命令
docker run --cap-drop=CHOWN ...
不允许使用 mknod,其他都可以
docker run --cap-add=ALL --cap-drop=MKNOD ...
-device
在之前的版本中,你可以在一个 --privileged 容器中使用 -v 参数来绑定和安装设备,而新版本的 docker run 引入了 --device 参数可以让你在无需 --privileged 容器中使用某个设备。
Example:
使用声卡
docker run --device=/dev/snd:/dev/snd ...
可写的 `/etc/hosts`, `/etc/hostname` 和 `/etc/resolv.conf`
你现在可以在容器中编辑 /etc/hosts, /etc/hostname 和 /etc/resolve.conf 配置文件。如果你需要安装 bind 或者其他需要使用到这些文件的应用的话,这个功能很有用。
注意,在 docker build 过程中对这些文件的改动是不会被保存的,改动只对运行中的容器有效。
独立进程中的 Docker 代理
Docker 用户空间代理将外部的访问路由到你的目标容器中,目前该进程已经独立开来,每个连接有一个独立的进程在运行,此举大大降低守护进程的负载,提升了稳定性和效率。
其他方面的提升和变化:
当使用 docker rm -f 命令时,Docker 将会在移除容器前杀掉容器(而不是停止它),如果你需要停止容器,你必须自行运行 docker stop.
--dns 支持 IPv6
支持私有注册条目的搜索
我们希望你能喜欢这个版本,如果有任何问题请 联系我们
软件详情:http://docs.docker.com/installation/mac/
下载地址:https://github.com/docker/docker/
来自:开源中国社区

