Docker 1.10版本发布

本文讲的是Docker 1.10版本发布,【编者的话】Docker 1.10于二月初发布了,这是容器社区最近的重大事件,除了修复很多bug和功能增强之外,Docker1.10还引入了几个我们一直期待的重大改进和特性。在本文中我将会着重阐述我个人认为最有用和最令人兴奋的特性。

Docker Compose对于网络和卷的支持
Docker Compse 1.6是与Docker 1.10一起发布的,在Docker 1.9中引入了完全重新设计的网络和卷系统后,这一版中增加了对于将网络和卷作为顶级实体的支持。
最新版本的Docker Compose向后兼容老的文件格式,为了迁移到Docker Compose的Version 2文件格式,在顶部增加了version:’2’ 这一行,将所有已存在的服务定义移动到新的service:分段中,并且可选择性地为网络和卷创建volumn:network:分段。
通过这些新增加的特性,用户可以在docker-compose.yml文件中定义更加复杂的网络和存储设置,在这些环境中开发应用程序,只需要使用Docker Compose和Docker Swarm就可以在持续集成、测试和最终的生产环境中采用相同的设置,这是非常神奇的!
docker-compose.yml文件中一个小而美的语义上的改进就是用户可以为一个容器定义镜像名字和构建目录,并且保存一段时间,如果已经存在了,那么就不需要每次都重建了。

网络相关的甜点
在Docker 1.10版本中添加了更多与网络相关的特性,如下所示:
* 内部网络,可以用来创建限制内外流量的网络
* 容器可以分配自定义的IP地址
* 容器间的连接可以使用各种类型的网络,不仅仅是默认的桥接网络
* 默认使用内嵌的DNS服务,代替了早期使用的基于/etc/host文件的解决方案,因为DNS的扩展性更好。

Docker 1.10的新的安全特性
作为Docker 1.10发行版的一部分,几个关键的安全改进也被添加了进来。Seccomp模板(Linux系统调用过滤)、内容可寻址的镜像ID和User Namespace是最其中重要的几点。

Docker中的User Namespace
Linux 命名空间(UTS、PID、NET、MNT和IPC)是允许我们创建Linux容器的其中之一的概念,这个概念允许我们在不同的上下文环境中用相同的名字调用不同的东西,就像编程语言的命名空间,User Namespace(简写为USER)是添加到Linux内核中的最新的容器命名空间。
在User Namespace引入到Docker之前,容器中的Root用户与宿主机系统的Root用户具有相同的UID,其它容器可能也是如此,这显然是一个安全问题。借助于User Namespace,容器提供了UID和GID的映射,这就允许容器中的进程认为自己以UID 0运行(通常是Root用户),而实际上它们是以UID 1234、42或者其它的一些UID运行的,这意味着这些进程从容器的角度而言具有Root访问权限,但是从宿主机系统角度而言不具备这个权限的。
黑客将会经历更加艰难的破解时间(也许是更加有趣)来再次打破容器的安全限制。
目前UID和GID的映射是在Docker守护进程级别指定的(使用flag —userns-remap),然而,未来我们可以期望努力实现在每个容器上允许有不同的映射集,这样就可以在一个Docker主机上实现安全的多租户了。

Docker中的安全计算模式
安全计算模式或者简写为seccomp是Linux内核的沙盒机制,出现自2.6.12内核版本,所以这不是一个新概念。
Seccomp本质上允许用户过滤有效进程的系统调用,它可以显著降低攻击面,只使能应用程序/进程实际需要使用其功能的那些系统调用。你的每个PHP应用平均需要访问300个以上的有效系统调用吗?也许不用。
在Docker 1.10中,用户要么使用完整的默认seccomp模板以JSON文件来定义他们自己的配置并且使用参数 security-opt传给容器,要么不用任何seccomp模板(不推荐)运行容器。

内容可寻址的IDs
每一个Docker镜像代表一个镜像层的堆栈,这些镜像层是镜像文件系统的快照,存在于对最初的Dockerfile文件docker build过程中的每一步命令执行之后,这些镜像层,要么是从Docker Registry拉取的,要么是本地构建的,都是只读的对象,在它们的顶层增加一个读写层就创建了一个容器。
在过去版本的Docker中,镜像层(以及容器)是通过一个随机的UUID来识别的,从Docker 1.10版本开始,镜像层是通过一个内容的哈希来识别的,这使得在对镜像拉取、推送、载入和保存之后的完整性校验更加容易和透明,因为没有两个不同的镜像层意外地具有相同的ID,反之亦然。
由早期版本的Docke构建的现有镜像不得不迁移,当升级到Docker 1.10版本后,Docker守护进程会自动将同一主机上的所有镜像作迁移,如果有很多镜像需要做哈希的话,这会持续几分钟。如果你不想等待那样长的时间,有一个离线迁移的脚本。
注意:在Docker 1.10中容器ID仍然是随机的UUID。

更多的更新
这一版本中还有更多的甜点。添加了命令docker update,该命令允许更新已运行容器的资源约束,在更改资源约束配置文件之后,不需要重启Docker守护进程。资源约束用于磁盘的I/O,下载/更新管理器也被重构允许更快的镜像拉取和并行推送等等。

总结
Docker 1.10是一个非凡的发行版。一周前我已经迁移所有的主机到了新版本,没有遇到任何问题(就像我上次升级到1.9后)。我鼓励每个人都考虑升级。

原文链接:Docker 1.10(翻译:胡震)

原文发布时间为: 2016-02-27

本文作者:国会山上的猫TuxHu 

本文来自合作伙伴DockerOne,了解相关信息可以关注DockerOne。

原文标题:Docker 1.10版本发布

时间: 2024-07-29 16:15:03

Docker 1.10版本发布的相关文章

Apache Calcite Avatica 1.10.0 发布,动态数据管理框架

Apache Calcite Avatica 1.10.0 发布了,Apache Calcite 是一个动态数据管理框架,用于 Hadoop 平台. Apache Calcite Avatica 1.10.0 增加了对 JDBC Array data, Docker, 和 JDK 9 的支持. 新版本中,Avatica Server 的 Docker 映像已发布到 Docker Hub.随着 Calcite 和 Avatica 项目变得更加独立,这是 Avatica 的仓库从 Calcite 的

OpenStack JUNO版本发布——支持Spark和NFV

美国时间2014年10月16日,OpenStack JUNO版本正式发布,这是OpenStack开源云计算项目自2010年创立以来的第10个版本.在过去的6个月里,有18704个代码提交记录,超过133个组织的1419名代码贡献者参与到OpenStack JUNO版本的开发中来,包括支持软件开发.大数据分析和大规模应用架构等342个新功能点亮相. JUNO版本的名字,来源于2014上半年OpenStac峰会举办地美国亚特兰大的一部 同名电影JUNO,电影讲述了一位未婚先孕的少女的故事,但故事一点

详解Windows 10版本布局 最好用的是它

自从微软于2014年秋季发布会上正式公布了Windows 10之后,正式宣布了毁誉参半的Windows 8/8.1的一页已经揭去,而微软将数字从8直接升至10,不仅意味着功能上的大步伐跃进,也意味着相比之前封闭式的内部测试,Windows 10是微软第一次尝试将操作系统的开发任务部分交予用户.虽然这在开放与交流上是一次不可多得的尝试,但也是第一次将诸多专业词汇推至用户面前:通道.分支 (Branch).预览.Ring,等等.故本文仅在于扫盲,向刚刚接触Windows 10的用户简单介绍一下细节,

阿里云EDAS E2 2.15.0 版本发布说明

PaaS 基础 Kubernetes应用部署和管理上线 - 新增Kubernetes应用类型创建入口,为用户提供Kubernetes集群能力: 虚拟Region上线 - 允许用户在阿里云现有Region下创建虚拟Region,以实现实现单租户下单Region内多环境(比如:开发.测试.生产)的隔离的需求. 组件中心页面上线 - 组件中心页面上线,EDAS平台所有子服务均可以这个页面上查阅到.其中应用诊断组件已经实现和系统菜单的联动. 控制台概览页全新上线 - EDAS控制台全新上线,展示四大指标

Windows 10 版本信息

原文 https://technet.microsoft.com/zh-cn/windows/release-info   Windows 10 版本信息 Microsoft 已更新其服务模型. 半年频道每年发布两次功能更新,时间大概在 3 月和 9 月,每个版本的服务时间线为 18 个月. 从 Windows 10 版本 1703 开始,半年频道取代了 Current Branch (CB) 和 Current Branch for Business (CBB) 概念,它已于 2017 年 7

CYQ.Data 轻量数据层之路 V4.5 版本发布[更好的使用体验,更优的缓存机制]

前言: 继上一版本:CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持] ,至今已快近3个月了,中间仅有V4.5beta版本供下载,却没正式发布,今天,终于要把V4.5给发布了.   下面看一下新版本的修改记录 实用: 1:MAction:Select方法增加重载:Select(string where); 2:FormatWhere处理了"Parent is null"的"is"关键字;处理"order by

GhostBSD 10.1-ALPHA1 发布

GhostBSD 10.1-ALPHA1 发布,此版本支持 amd64 和 i386 架构.此版本相比 4.0-RELEASE 改进如下: DM has been replaced by PCDM; Wifimgr is now fully replaced by Networkmgr; a beta version of Update Station is now in GhostBSD with update FreeBSD base system and software; the ins

QBlog博客 V2.5 版本发布 增加健康频道[支持多语言、多用户、多数据库、目录级URL]

QBlog发布历史回顾: 1:2010年11月08日---支持多语言.多用户.多数据库.目录级URL之路过秋天版博客发布[绝对有杀伤力的博客] 2:2010年11月10日---基础却容易被忽略的那点事--web入侵方式及注意事项总结 3:2010年11月15日---支持多语言.多用户.多数据库.目录级URL之路过秋天版博客 V1.0正式版 发布[含详细部署安装说明] 4:2010年11月17日---路过秋天版博客-皮肤制作指南 [附犀利哥入侵攻防站话题] 5:2010年11月29日---路过秋天

Ubuntu 9.10即将发布 云计算成亮点

本文讲的是Ubuntu 9.10即将发布 云计算成亮点,[IT168 资讯]Ubuntu开发团队正以最快的速度为您带来开源软件社区提供的软件中最新最好的软件.Ubuntu 9.10最终稳定版本将会在2009年10月29日正式发布.这一天可能大家都期待已久了吧? 日前,Canonical公司抢先宣布了Ubuntu9.10的一些新特性和功能.Canonical显然对Ubuntu 9.10服务器版的一些新功能感到非常兴奋,云计算成为了本次版本发布的新焦点.而最主要的亮点则是9.10版针对私有云进行了重