阅读更多

3顶
0踩

互联网

原创新闻 Docker 1.10.0 版本震撼发布

2016-02-05 16:55 by 副主编 mengyidan1988 评论(1) 有6906人浏览
Docker 粉们,是否还记得上一个 Docker 大版本的发布是什么时候?你的记忆是否已经模糊?

答案是: 10 月 14 号

在中国春节即将到来之际,Docker 官方发布了跨时代的 Docker 1.10.0 版本,着实为猴年的到来献上了一份大礼。

如果说 Docker 1.9.0 的 overlay 网络意味着 Docker 在集群能力方面的质的飞跃,那么这次发布的 Docker 1.10.0 更是在多个方面实现重大突破。

总体而言,我认为这次新发布的 Docker 1.10.0 主要有以下这几方面意义非凡的变化和看点:
1.Docker Engine 支持配置热更新,容器与 Docker Daemon 的耦合性大大降低
2.Docker API 的完善程度稳步上升,容器隔离维度更细致、更全面
3.Docker 安全划时代地支持了 User Namespace 与 seccomp,安全程度直逼虚拟机
4.镜像格式首推「内容寻址方式」,可以做到 Docker 镜像的全球唯一性,镜像的安全与存储都有大的改观
5.网络能力,无论单机,还是跨主机,功能逐渐完善,成熟度稳步提升,发展之迅速不得不令人佩服
6.稍显惋惜的是,传统的容器管理工具 LXC 即将退出 Docker 的舞台,伴随 Docker 接近三年的时间,终于被更完善的容器管理方案取代,同时 Docker 的飞速发展以及追求卓越也一览无余
看完 Docker 1.10.0 的主要变化,我们来看一下这一版本更为细节的变化,相信 Docker Engine、安全、Distribution、网络、日志、存储卷 Volume 等多方面,总有一款适合您。详情请见下文:

1. Docker Engine(Runtime)
  • 开发了新命令docker update,允许用户更新运行中容器的资源限制(对于资源的重分配意义很大,后期可以考虑集成)
  • 为docker run命令添加 flag 参数–tmpfs,用于为容器挂载一个内存文件系统,便于文件的快速读写
  • 为docker images命令添加 flag 参数–format
  • 允许用户在文件中配置 Docker Daemon 的运行参数,并通过 SIGHUP 信号对其进行热加载,换言之,Docker 开始支持动态加载配置参数
  • 更新docker events命令的内容输出,使其包含更多的元数据以及事件类型;但是,需要注意的是,此改动完全兼容 Docker 的 API,但是在 Docker CLI 中仍未支持
  • 为docker run命令添加 flag 参数–blkio-weight-device
  • 为docker run命令添加 flag 参数–device-read-bps和–device-write-bps,用于磁盘 I/O 的读写 BPS
  • 为docker run命令添加 flag 参数–device-read-iops和–device-write-iops,用于磁盘 I/O 的 iops
  • 为docker run命令添加 flag 参数–oom-score-adj,用于容器进程发生 oom 现象时,如何选择 kill 进程的评分依据
  • 为命令run、attach、start以及exec添加 flag 参数–detach-keys,以此来覆盖从容器退出的的默认键盘键,比如使用 Docker 客户端自定义的 ctrl+a 来作为这些命令的 ESC 键
  • 为docker run、docker create以及docker build命令添加–shm-size,用于动态内存文件系统的大小(/dev/shm 等同于 tmpfs)
  • 丰富docker info命令的输出内容,为其添加运行容器的数目,停止容器的数目以及挂起容器的数目
  • 丰富docker info命令的输出内容,为其添加操作系统类型以及机器结构
  • 为docker daemon命令添加 flag 参数–cgroup-parent,从而为所有容器设置父 cgroup,即挂载于制定的 cgroup 路径下
  • 为docker cp命令添加 flag 参数-L,使得cp命令不是仅仅拷贝符号链接,而是拷贝符号链接真实指向的内容
  • 新增过滤规则status=dead,使命令docker ps的输出更符合用户需求
  • 更改docker run命令的返回码(exit code),从而区分在命令返回的原因究竟是 Docker Engine 的错误,还是容器内部应用自身的错误
  • 扩展docker events命令中添加–since和–util参数后的内容输出,使其支持时区以及纳秒
  • 为docker stats命令添加 flag 参数-a/–all,用于显示运行中容器以及停止容器的资源使用
  • 将默认的 cgroup-driver 设置为cgroupfs
  • 当使用docker build -t命令为某一镜像设置标签时,Docker Daemon 触发一个 tag 事件;换言之,Docker Daemon 新支持一种 tag 事件
  • 重新启动 Docker Daemon 时,尽最大的努力来合理安排 link 容器的启动顺序
  • 允许docker build命令为镜像设置多个标签(tag)
  • 对任意 url 请求添加 OPTIONS 请求,而不是修改跨域存在的问题
  • 修复docker build命令的 flag 参数–quiet,使其真正意义上实现 quiet,即不输出构建过程的内容
  • 修复命令docker images –filter dangling=false,现在真正意义上显示的是所有的 non-dangling 镜像
  • 修复命令docker volumes ls –filter dangling=false,现在真正意义上显示的是所有的 non-dangling 的存储卷
  • 修复重启容器时因为容器内部进程长时间处理 SIGTERM 信号未果儿存在的资源竞争 BUG
  • Docker Daemon 中加入了 IBM 公司的的共享文件系统 GPFS
  • 修复 Bug,使得 volume driver 不允许被容器化
  • 删除容器过程中,不删除有命名的挂载点
  • 修复阻止容器启动的某些不知名 Bug
  • 禁止在重启过程中对容器执行docker exec操作
  • devicemapper 方面,当 Docker Daemon 重启过程中–storage-opt dm.basesize参数的增长会导致基础设备存储空间的增长

2. 安全
  • 为 Docker Daemon 命令添加 flag 参数–userns-remap,用以支持 Linux Namespace 中的用户命名空间(User Namespace),之前 Docker 对于用户命名空间的支持仅仅存在于 Docker 试验版
  • 在docker run命令的 flag 参数–security-opt中,添加对自定义 seccomp 文档的支持,主要用户对容器应用在系统调用方面实现沙箱化
  • 为 Docker 添加默认的 seccomp 文档,在容器的系统调用方案实现更为细粒度的隔离
  • 为docker daemon命令添加 flag 参数–authorization-plugin,用以支持自定义的访问控制列表(ACL)
  • 当用户使用 BTRFS 时,允许用户在容器中运行 SELinux

3. Distribution
  • 为 AuthConfig 数据结构添加一个名为registryToken的属性。该 Token 属性允许 API 客户端从一个镜像仓库中获取用户的认证 token,然后将 token 直接发给远程 API
  • 对镜像和镜像层实现内容寻址的存储方式。内容寻址指的是,通过镜像层的内容来唯一的决定一个镜像的 ID,从而保证镜像的全局唯一性。需要注意的是:当 Docker 第一次运行的时候,会有一个对原有镜像进行格式转换的过程。此过程很可能会占用很长时间,主要取决于当前 Docker Daemon 所管理镜像以及容器的数目大小。从此,镜像中不再有parent image的概念,而是指向一系列的镜像层引用。同时docker load/docker save的压缩包现在会包含内容寻址镜像的配置文件
  • 支持新的 menifest 格式(schema2)
  • 对镜像下载和镜像上传做了众多改善,比如:性能的提高,下载失败时的重试机制,客户端失联的取消操作等
  • 对镜像仓库 v1 协议的回调限制
  • 新版的 Notary 支持,其中包含了客户端的 pkcs11。P.S. notary 是 Docker 一款官方推出的在客户端和服务端通过受信集合来交互的工具
  • 修复 Bug,此 Bug 在先前的版本中出现时会导致 Docker Daemon 因为等待一个并不存在的进程去下拉镜像而僵死

4. 网络
  • 对于容器而言,使用基于 DNS 的发现机制,取代原先的 /etc/hosts 方式
  • 对docker network connect命令中添加网络方面的别名,如–net-alias,以及docker run命令时的–alias
  • 为docker run以及docker network connect命令添加参数–ip和–ip6,用以在一个网络中为容器自定义 IP
  • 为docker network create命令添加参数–ipam-opt,用于传入自动的 IP 地址管理(IPAM)的选项
  • 在–cluster-store-opt参数中添加kv.path
  • 在–cluster-store-opt参数中添加discovery.heartbeat和discovery.ttl参数,用于配置服务发现的 TTL 以及心跳周期
  • 为docker network inspect命令添加–format参数
  • 为docker network connect命令添加–link参数,用以提供容器级别的别名
  • 通过远程 IP 地址管理器(IPAM)插件的形式
  • 为docker network disconnect命令添加–force参数,用以强制容器从某个 network 中断开连接
  • 在 Linux 内核版本 3.10+ 上,使用内嵌的 overlay 驱动来完成跨主机的网络互联
  • 在用户定义的 network 中,支持在docker run命令中使用–link参数
  • 扩展docker network rm命令,使其有能力一次删除多个 network
  • 在docker inspect命令的输出内容中添加所有容器的名称
  • 在docker network inspect命令中,加入为用户自定义网络自动生成的子网地址
  • 为docker network ls命令添加 flag 参数–filter,用以隐藏预先定义的 networks
  • 支持已停止容器的 network 连接/断开功能

在docker inspect命令的返回结果中添加 network id
  • 修复 MTU 的 bug,之前版本 Docker 在有两条或者两条以上路由记录时启动就会失效
  • 为容器修复重复 IP 地址的 bug
  • 修复了有时 Docker Daemon 在创建默认网络时存在的 bug
  • 在使用–net=host参数时,不为容器替换 127.0.0.1 的域名服务器地址

5. 日志

  • 新增日志驱动 Splunk
  • 在 TCP+TLS 的基础上,完善对 Syslog 的支持
  • 扩展docker logs –since和–until命令,用以支持纳秒
  • 扩展日志驱动awslogs,使其当 Docker Daemon 在 AWS EC2 上运行时,可以自动监测正确的 Amazon CloudWatch 的日志时区

6. 存储卷 Volumes
  • 为 Docker 的存储卷添加设置 mount propagation mode 的支持
  • 为存储卷插件的 API 添加ls和inspect接口
  • 修复了不能从命名存储卷中拷贝数据的 bug
  • 允许外部存储卷驱动管理异步存储卷

7. 镜像构建器(builder)
  • 在.dockerignore文件中添加对**的支持,实现通配多级目录
  • 修复 Dockerfile 中对 UTF-8 编码字符的处理
  • 修复从标准输入读取内容时的权限问题

8. 客户端
  • 通过使用DOCKER_API_VERSION环境变量来支持API版本覆盖的支持

9. MISC
  • systemd:在systemd服务的配置文件中,为LimitNPROC添加TaskMax参数

10. 遗弃
  • 从 Docker Daemon 移除对 LXC 的支持,在 docker 1.8 版本时,Docker 用来管理容器的驱动之一——LXC 驱动就已经被标记为 deprecated,现在此驱动已经被移除
  • 在docker daemon命令中移除 flag 参数–exec-driver,因为此驱动已经不再会被使用
  • 移除部分 Docker CLI 方面的参数,比如(-rm,选择用–rm来替代)
  • 在容器启动的 API 中遗弃数据结构 HostConfig
  • 由于某些特定 Linux 版本发行版项目的终止,从而遗弃这些项目下 docker 软件包的支持;比如 Fedora 21 和 Ubuntu 15.04(vivid)
  • 遗弃docker tag命令的-f参数

备注:本文来自DaoCloud供稿,独家授权发布,作者孙宏亮,DaoCloud技术合伙人,主要负责DaoCloud企业级容器云平台的研发。目前已出版《Docker 源码分析》一书,也是国内第一批研究及实践Docker的工程师,同时也是国内社区极具影响力的Docker布道者。
来自: 极客头条
3
0
评论 共 1 条 请登录后发表评论
1 楼 Spring丿Game 2016-02-13 23:54

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 后台前端样式DEMO

    后台前端样式DEMO

  • 根据不同配置动态创建QT界面

    vs2010+QT5.5.1,此程序用于学习使用QT库读取xml文件,json文件,sqlite数据库,ini文件,以及QT10个基本控件的使用,同时代码中加入了一点设计模式,提高可扩展性降低耦合性并减少开销

  • PHP 一键生成的网址导航系统 源码 网站版面清晰简洁,并可实现版面自由换色,一键生成,方便快捷。网站页面全后台操控,方便简单,安装后即可生成静态页面。由于个别板块显示设置,请进入后台数据管理,导入数据备份文件即可

    PHP 一键生成的网址导航系统 源码 网站版面清晰简洁,并可实现版面自由换色,一键生成,方便快捷。网站页面全后台操控,方便简单,安装后即可生成静态页面。由于个别板块显示设置,请进入后台数据管理,导入数据备份文件即可

  • web端炫酷的30个前端动态加载页

    WEB包含30个前端加载效果页面,动态执行加载,用于加载图片,懒加载等等

  • 简单快速的用Java动态生成jsp/html前端页面。

    首先给大家说说动态生成jsp、html的好处,大家都应该见过“淘宝”和“京东”,在每个节日会将他们菜单栏变成与节日相匹配的图片,和页面。这样就避免了项目修改完成之后再从新部署。 首先给大家看一下看一下效果图: ![test.html](http://img.blog.csdn.net/20180107225231617?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5

  • 根据读取后台配置(前端动态化展示table.)

    点击某行记录。执行函数 row数据结构 result数据结构 function detailTask(){         var row = $('#dg').datagrid('getSelected');         if (row){             $.post('/taskManager/sureDetail.html',{tas

  • 根据后台的数据设置前端页面展示效果

    2019独角兽企业重金招聘Python工程师标准>>> ...

  • vue根据后台传递的json数据生成动态配置页面(一)动态组件

    一、需求理解 前端主要分俩模块,一个是管理模块,一个是展示模块。 管理模块负责传递json数据。 如图1.1,目前只是大概做了一个静态数据传递,先做页面展示。 展示模块负责根据json数据展示页面。如图1.2,根据动态组件和传递json数据展示页面,页面主要有动态表单、动态按钮、动态列表、动态弹窗等。 ...

  • js通过后台配置动态生成html table表格

    js根据后台配置动态生成合并行。。。。

  • web前端页面取值的几种方式

    抽时间总结一下web前端HTML代码段里面取值的一些方法。可能不全。也有可能有些描述不是很准确,欢迎补充和修正。   1.      前台往后台传值,通过提交表单,在后台有set,get方法,可以直接取到。如果通过request.getParameter(paramName) 去获取通过会报空指针异常。 其中request是HttpServletRequest的实例。解决的方法是,在后台act

  • 页面中可拖拽控件的简单实现方案

    页面中可拖拽控件的简单实现,可直接一句话实现.核心代码逻辑类如下:import android.animation.ObjectAnimator; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; impor

  • web.config 定义了重复的节

    在发布WCF服务网站到IIS7上时,出现定义了重复的节的问题应该是 C:\Windows\Microsoft.NET\Framework\v4.0.30128\Config\machine.config 里与程序目录下的web.config有重复项的缘故。可以将WebConfig文件中的对应项注释掉即可解决这个问题。根据谷歌回来的文章进行操作后,网站依然无法打开,通过报错观察到网站采用的是.net...

  • 自动生成代码的UI框架

    先简单介绍一下这个插件:一个具有基本功能的UI框架,一套可以自动生成UI代码与挂载相关控件的逻辑。 先看效果图: 0.GenSence场景下UIRoot/View摆好了一个UI页面,可以直接进去右键->生成代码试下  1.选中新拼出来的UI页面右键点击生成UI代码,目录名字必须为(Background、View、Popup、Tips)的其中一个为结尾,UI设计思路分前后四层,每层同...

  • 根据模板页面生成页面有感

    今天在改公司邮件的时候发现公司的邮件是用模板页面 发现是用模板做的 于是看了看相关的资料 现在对模板粗浅的认识: 模板页面就是写一个静态页面当然如果这个页面是像邮件这样的单独页面的话最好是将样式放到页面中,以免加载该页面的时候出现加载不到的情况,图片最好是用绝对路径。 在这个静态页面中为了让它动态化就将一些内容写成比较特别的方式$UserName 或者是#UserName 的方式都是可以的。好...

  • 后台 配置页面功能设计

    每个网站开发中,多多少少会需要一些默认的配置项,相对而言一条条的手动添加是极为繁琐的,要分类各种图片、文字、文件、单选、多选按钮等,在此提供一种设计思路,记不清从哪里参考而来的,个人认为比较方便,也有很大的扩展性...

Global site tag (gtag.js) - Google Analytics