写点什么

Docker 1.13 版增强了 CLI、 针对 Swarm Mode 的 Compose-File 支持及 Secrets API

  • 2017-02-03
  • 本文字数:2874 字

    阅读完需:约 9 分钟

Docker 股份有限公司已经发布了开源 Docker 容器引擎项目的 1.13 版。这个版本包括对 Docker CLI 的重大重新调整,引入了回收再利用磁盘空间的‘clean-up’命令,以及几个实验性特性,比如镜像层压缩和改进了日志的 Prometheus-style 端点。伴随 Docker 1.13 版的发行,还有支持工具链的新版本,包括: Docker Compose 1.10 Docker Machine 0.9.0 Notary 0.4.3 。所有这些版本都包括在 Docker for Mac Docker for Windows 的捆绑下载中。

这个版本的 Docker CLI 围绕像“容器”和“镜像”这样的管理对象已经做了重大的调整,虽然 1.13 版之前的命令在这个版本中仍然是可用的。Docker 官博声称在 1.12 版中包含有‘run’、‘build’ 和 ‘images’等 40 多个命令,这使帮助页面很是混乱,也很难做到 tab 补齐。Docker 1.13 版重新组织了每个命令,使其作用于有相互影响的逻辑对象之下,即管理对象。例如,容器的‘run’ 和 ‘stop’现在是 ‘docker container’ 管理命令的子命令,而镜像的‘build’ 和 ‘history’是 ‘docker image’的子命令。Docker Captain Arun Gupta 写了一篇已有命令到新管理命令的全面映射的博客。管理命令示例如下:

复制代码
$ docker container run hello-world
$ docker image ls
$ docker image rm hello-world --force

Docker 1.13 版引入了几个‘ clean-up ’命令。例如,‘docker system df’将显示已使用的磁盘空间,而 ‘docker system prune’ 将清除所有未使用的数据(在删除之前由用户予以确认)。来自于系统 prune 的数据将被清除,包括所有已停止的容器、所有一个容器也未使用的卷和网络,以及所有挂起的镜像。Prune 也可以用于消除特定的数据。例如,‘docker volume prune’ 和 ‘docker image prune’,目标分别为未用的卷和挂起的镜像。

该 1.1.3 版现在包括一个针对 Docker 守护进程的“实验性”标记,从而将这些实验性的特性包含在 Docker 的稳定版本中。该实验性标志在当前针对 Mac 和 Windows 的 Docker 下载中默认是开启的,而在单独的二进制下载中不是。因此,开发人员和运维人员应该留意一下,确保他们清楚在他们的开发和生产配置中开启了哪些特性。

在 Docker 1.13 版中新的实验性特性包括一个‘docker build’ ‘–squash’ 标记,它把所有由构建生成的文件系统层取出来并合并到一个新的层。 Docker 客博表示,这能简化创建最小容器镜像的过程,但镜像移动时可能会导致更高的成本,因为压缩的层不能再在镜像间共享了。Docker 仍然缓存单个层以使后来的构建更快速。Docker 1.13 版还支持构建内容的压缩,使用‘–compress’标记从 CLI 发送给守护过程即可。通过减少数据发送量从而加快在远程守护进程上完成构建的速度。

Docker 1.13 版还增加了一个实验性 Prometheus-style 端点,以及容器、镜像和其他守护进程状态的基本度量。‘docker service logs’是一个新的实验性命令,其目标是使服务调试更加简单。与必须追踪为特定服务供能的主机和容器并从这些容器拉取日志不同,‘docker service logs’ 是从运行某一服务的所有容器中拉取日志并流化它们到运维人员的控制台。

Docker 1.13 版为‘docker stack deploy’ 命令增加了 Compose 文件支持,以便服务可以直接使用‘docker-compose.yml’ 文件部署到内置的 Docker Swarm Mode 群集。这个增强克服了部署 Docker Compose 栈到 Docker Swarm Mode 必须捆绑 Compose 到 Distributed Application Bundles (DAB) 中的限制,它未完全支持所有的 Docker Compose 操作,比如 volume mounts 。(请注意,不要把 Docker Swarm Mode 和原始独立的 Docker Swarm 搞混,它与 Docker Compose v2 语法兼容,但运行容器时不能使用内置于 Docker Engine Swarm Mode 的功能。)

Docker Compose 1.10 引入第三版 Compose 语法,它移除了多个属性,比如‘volume_driver’、‘volumes_from’ 和 ‘cpu_shares’,并增加了 ‘deploy’属性。与被移除属性相关的所有操作在其他的属性上仍然是有效的,从 Compose 早期版本迁移的操作应参阅更新指南。这些服务部署属性使容器复制因子、更新策略(也就是滚动更新)、部署限制和资源配置(可以使用新的简化的 'cpus’资源限制代替已有的 cpu-quota、cpu-shares 或者 cpuset-cpus)的规范成为可能。

这些部署属性只在使用‘docker stack deploy’ 部署 Swarm Mode 集群时产生作用,在使用‘docker-compose up’ 和 ‘docker-compose run’时则会忽略。举一个包含有第三版语法的’docker-compose.yml’文件示例如下:

复制代码
version: "3"
services:
web:
image: web
labels:
com.example.description: "This label will appear on all containers for the web service"
deploy:
labels:
com.example.description: "This label will appear on the web service"
resources:
limits:
cpus: '0.001'
memory: 50M
reservations:
cpus: '0.0001'
memory: 20M
mode: replicated
replicas: 6
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
placement:
constraints:
- node.role == manager
- engine.labels.operatingsystem == ubuntu 14.04

在本版本针对 Swarmkit 中新的 Secret API 增加的支持中,包含Docker Swarm Mode 的最新版本。这个功能与 Kubernetes Secrets 或中立平台 HashiCorp Vault 开源产品类似。相关的 Secrets API GitHub issue 表示这一功能当前适用于仅以 Swarm 作为数据存储的 Swarm Mode,并且仅针对 Linux。这一版本是未来 Docker 针对 Windows、不同数据存储等等继续增强安全支持的基础。

Docker 安全仅适用于 Swarm 服务,不适用于单独的容器。然而,容器可以指定作为规模为 1 的 Swarm 内的服务来运行。若想详细了解该安全功能是如何实现的,以及相关的注意事项,可以深入研究该文档

在该1.13 版中其他值得注意的包括这样一份公告,公告称 Docker for AWS Docker for Azure 已经结束公开测试即将面世。该 Docker 管理插件 API不再是实验性的了。然而,该API 与之前Docker 1.12 中的版本已经有了很大的变化,在升级到Docker 1.13 之前必须要使用’docker plugin rm’命令先卸载插件。该‘MAINTAINER’ Dockerfile 声明也成了不赞成的,推荐使用‘LABEL’ 来代替。

此外,Docker 1.13 版还包括针对Linux 托管访问控制技术的更新,其中包括 SELinux (安全增强的 Linux) 和 AppArmor 。然而,几个与 high-profile 相关的缺陷仍然是打开状态,包括增加对 sharing Unix sockets 的支持,以及在安装好的卷中访问文件会变得非常慢(尽管这可能使用第三方工具 docker-sync 缓解)。

在 Docker 客博中可以找到关于此 Docker 1.13 版的其他信息,在 Docker GitHub 资源库中可以找到完整的 1.13 版更新说明。Docker 1.13 版二进制和分别“针对 Mac”和“针对 Windows”的捆绑可以从 Docker 网站上下载。

查看英文原文 Docker 1.13 Released with Improved CLI, Compose-file Support for Swarm Mode, and Secrets API

2017-02-03 18:002425

评论

发布
暂无评论
发现更多内容

Kotlin伴生对象(Companion Object)

子不语Any

android kotlin 11月月更

面试官:说说电商系统订单超时自动取消怎么实现?你有几种方案?

程序员小毕

程序员 面试 程序人生 后端 架构师

云原生主题学习月|共同学习全球领先的亚马逊云科技云原生课程,组团共学拿奖励~

亚马逊云科技 (Amazon Web Services)

云原生 培训与认证

嘉为科技吴文豪:重塑运维系统,跨越烟囱式建设的陷阱

嘉为蓝鲸

运维 #WeOps

亚信科技亮相南京软博会,数智赋能百行千业

亚信AntDB数据库

AntDB aisware antdb AntDB数据库

元器选型攻略之 电阻

元器件秋姐

元器件知识 元器件科普 电阻 电阻定义 常见电阻

天翼云混合云容灾技术解析

天翼云开发者社区

跨越速运如何构建实时统一的运单分析

StarRocks

#数据库

嘉为科技张敏:一文讲清场景工程方法论及运维组织能力内化

嘉为蓝鲸

运维 数字化

可视化:如何选择数据可视化图表?

2D3D前端可视化开发

数据可视化 可视化大屏 可视化图表 可视化工具 sovitchart

APP以监听投广?中央APP治理专项组测评揭晓答案!

科技热闻

玩转云端| 数据库安全服务,为数据库资产构建“最后一道防线”!

天翼云开发者社区

天翼云Serverless边缘容器下沉服务 促进企业聚焦业务创新

天翼云开发者社区

制造业的敏捷分析,还需要使用瓴羊Quick BI

对不起该用户已成仙‖

企业数字营销和运营如何效果更好?瓴羊Quick BI成为了不错的选择

小偏执o

Neo4j CEO Emil Eifrem 解读图数据平台引领数据库未来十年的发展

Neo4j 图无处不在

neo4j 图数据库 知识图谱 图可视化引擎 图数据

Kotlin作用域函数[Scope Function](下)

子不语Any

android kotlin 11月月更

老板让我在Linux中使用traceroute排查服务器网络问题,幸好我收藏了这篇文章!

wljslmz

Linux 网络故障 11月月更 traceroute

通过支付网关提高第三方支付接入效率

产品海豚湾

产品经理 产品设计 支付系统 产品架构 11月月更

ZooKeeper 避坑实践:如何调优 jute.maxbuffer

阿里巴巴云原生

zookeeper 阿里云 云原生

微服务治理的3种方式

穿过生命散发芬芳

微服务治理 11月月更

深究用户模式锁的使用场景(异变结构、互锁、旋转锁)

C++后台开发

数据结构 多线程 linux开发 C++开发

老工程师荐读!PCB设计避坑指南

华秋PCB

PCB PCB设计

云原生主题学习月|成为社区领学员,解锁专属奖励及超多数量社区学员奖品!

亚马逊云科技 (Amazon Web Services)

云原生 培训与认证

生活中常见的新北洋打印机:多场景赋能美好生活

科技热闻

数字先锋| 一朵云,将温暖传递千家万户

天翼云开发者社区

企业内部统一的移动平台,实现安全高效的业务移动化

WorkPlus

开源共建 | TIS整合数据同步工具ChunJun,携手完善开源生态

袋鼠云数栈

大数据 开源 数据同步工具

Kotlin作用域函数[Scope Function](上)

子不语Any

android kotlin 11月月更

通过飞书审批 Bytebase 工单

Bytebase

数据库 sql DevOps SQL审核 SQL审批

焱融科技为国家重点实验室打造海量高性能存储

焱融科技

云计算 分布式系统 高性能 文件存储

Docker 1.13 版增强了CLI、 针对Swarm Mode的Compose-File支持及Secrets API_DevOps & 平台工程_Daniel Bryant_InfoQ精选文章