发布于 2014-08-23 00:00:56 | 278 次阅读 | 评论: 0 | 来源: 网友投递
Docker 开源应用容器引擎
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
今天,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
给你更好的控制功能使用的方法:
更改容器接口状态
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 容器中使用某个设备。
使用声卡
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
支持私有注册条目的搜索
我们希望你能喜欢这个版本,如果有任何问题请 联系我们
了解更多
安装指南 for Docker 1.2.0.
共享容器映像和自动化工作流 – 获取免费的 Docker Hub 账号.
如果你是 Docker 的新手,请访问 online tutorial.