Docker 1.12.0将要发布的新功能

导读 按计划,6/14 是1.12.0版本的 feature冻结 的日子,再有两个星期Docker 1.12.0也该发布了。这里列出来的新功能,都是已经合并到主分支的功能,不出意外,下一个版本的Docker应该是能体验到了。

下周2016 DockerCon也该开始了,好像也有一场专门来讲Docker新特性的,不过在这之前,我们就可以抢先一步,浏览一下这些新功能、新特性。尤其是前两个,都是比较吸引人的功能。

Swarmkit集成

前几天Docker刚刚发布了 Swarmkit ,也就是Swarm V2,同时,在这个版本的Docker中,Swarm/Swarmkit 相关命令也被整合到了Docker子命令中。这可能算得上是1.12.0版本中最大的变更点了。

这个PR(Add dependency to docker/swarmkit) 有600个文件变动。 除了传统的image和container对象,这个PR增加了task和service等资源类型,相关几个子PR包括 23362 、23363 、 23364。

使用新的Docker命令,可以这样直接创建Swarm集群:

$ docker swarm init --listen-addr 192.168.99.100:2377
Swarm initialized: current node (09fm6su6c24qn) is now a manager.

查看节点:

$ docker node ls
ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS LEADER
09fm6su6c24q * manager1 Accepted Ready Active Reachable Yes

然后这样来部署一个新的service:

$ docker service create --scale 1 --name helloworld alpine ping docker.com
2zs4helqu64f3k3iuwywbk49w $ docker service ls
ID NAME SCALE IMAGE COMMAND
2zs4helqu64f helloworld 1 alpine ping docker.com

需要scale了?没关系,也可以在Docker中直接完成:

$ docker service update --scale 5 helloworld
helloworld $ docker service tasks helloworld
ID NAME SERVICE IMAGE DESIRED STATE LAST STATE NODE
1n6wif51j0w840udalgw6hphg helloworld.1 helloworld alpine RUNNING RUNNING 2 minutes manager1
dfhsosk00wxfb7j0cazp3fmhy helloworld.2 helloworld alpine RUNNING RUNNING 15 seconds worker2
6cbedbeywo076zn54fnwc667a helloworld.3 helloworld alpine RUNNING RUNNING 15 seconds worker1
7w80cafrry7asls96lm2tmwkz helloworld.4 helloworld alpine RUNNING RUNNING 10 seconds worker1
bn67kh76crn6du22ve2enqg5j helloworld.5 helloworld alpine RUNNING RUNNING 10 seconds manager1

在一台机器上使用 docker ps :

$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
910669d5e188 alpine:latest "ping docker.com" 10 seconds ago Up 10 seconds helloworld.5.bn67kh76crn6du22ve2enqg5j
a0b6c02868ca alpine:latest "ping docker.com" 2 minutes ago Up 2 minutes helloworld.1.1n6wif51j0w840udalgw6hphg

我们也可以这样使用 dcoekr service 子命令。

$ docker service create --scale 3 --name redis --update-delay 10s --update-parallelism 1 redis:3.0.6

69uh57k8o03jtqj9uvmteodbb
$ docker service tasks redis
ID NAME SERVICE IMAGE LAST STATE DESIRED STATE NODE
3wfqsgxecktpwoyj2zjcrcn4r redis.1 redis redis:3.0.6 RUNNING 13 minutes RUNNING worker2
8lcm041z3v80w0gdkczbot0gg redis.2 redis redis:3.0.6 RUNNING 13 minutes RUNNING worker1
d48skceeph9lkz4nbttig1z4a redis.3 redis redis:3.0.6 RUNNING 12 minutes RUNNING manager1

总之,新的Docker和Swarm结合在一起,管理集群和服务将会更方便。

插件管理(Plugin repository,experimental版)

PR地址: https://github.com/docker/docker/pull/23446

插件管理功能可能算是第二大变更点了。很多软件都支持插件机制,大家比较熟悉的从Wordpress到ElasticSearch等,都支持在软件内部通过plugin功能安装、管理插件。

Docker最近也增加了一些网络和卷管理的插件功能,这次还在体验版中增加了插件(基于容器)管理功能,可以通过 docker plugin 命令来管理插件。除了提供了一个统一的插件管理入口,还可以对插件的生命周期进行更好的管理,Docker君,我的插件写的比较不专业,请罩着我点。

这是一个大概的使用示意,通过 docker plugin install 可以安装插件, docker plugin ls 可以列出当前安装的插件:

$ docker plugin install aragunathan/no-remove
Plugin "aragunathan/no-remove:latest" requested the following privileges:
- Networking: host
- Mounting host path: /data
Do you grant the above permissions? [y/N] y

查看插件列表:

$ docker plugin ls
NAME VERSION ACTIVE
aragunathan/no-remove latest true

目前 docker plugin 支持如下子命令:

plugin ls
plugin enable
plugin inspect
plugin install
plugin rm

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:https://www.linuxprobe.com/

最新文章

  1. 将 instance 连接到 flat_net - 每天5分钟玩转 OpenStack(88)
  2. java Proxy(代理机制)
  3. 自定义Docker容器的 hostname
  4. SharePoint Online 创建门户网站系列之创建栏目
  5. symfony2 环境搭建笔记
  6. Arduino中的setup()和loop()函数
  7. AX2012全新的批处理方式
  8. CP1W-CIF41以太网模块(使用总结)
  9. 当程序遇到 throw后的处理
  10. innobackupex 使用说明
  11. leetcode383
  12. 使用Vagrant打造开发环境
  13. 图像处理------透明混合 - Alpha Blending效果
  14. Spring系列之手写一个SpringMVC
  15. Python中使用class(),面向对象有什么优势 转自知乎
  16. 使用node.js进行API自动化回归测试
  17. bzoj1036点权模板题
  18. Intersection Observer API 可以让你知道被观察元素何时进入或退出浏览器的视口
  19. Git客户端的安装与配置入门
  20. Gym 100646 Problem C: LCR 模拟题

热门文章

  1. POJ2406----Power Strings解题报告
  2. 如何在Fedora 22上面配置Apache的Docker容器
  3. SQL时间第二期_时间格式化
  4. HDU 1002 分类: ACM 2015-06-18 23:03 9人阅读 评论(0) 收藏
  5. STM32先设置寄存器还是先使能时钟
  6. JS初识(着重讲解Date函数)
  7. Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
  8. Why isn't there a SendThreadMessage function?
  9. PL/pgSQL学习笔记之七
  10. MySQL 多会话之间更新数据的小实例