文档章节

突破自我的Docker1.12

linuxprobe
 linuxprobe
发布于 2016/08/24 15:48
字数 1360
阅读 11
收藏 0

突破自我的Docker1.12突破自我的Docker1.12

之前缺少了什么?

一言以蔽之……编排

Docker 实在是太酷了——我指的是那些能改变游戏规则的技术。这些黑科技能给企业带来方方面面的巨大效益,随便列举几个:市场周期、稳定性、灵活性,还有资源利用率

不过与此同时,容器的规模化管理,一直是个棘手的难题。在以前,我们不得抓取 Docker Swarm,Kubernates,或者 Mesosphere DCOS 这类外部工具,把它们放置在容器之上,以此来管理大规模的容器。虽然说够用,但并不完美。

而不完美的原因是很复杂的。每一种外部工具都会给工作横生枝节,如果你想“安全”地把事情做完,这些枝节会带来很大的麻烦——搞得安全性只是一种“选项”似的。

总之,在我看来有三点主要的问题:

1、部署和管理规模化的基础设施(如 Docker 引擎)

2、部署和管理规模化的应用(如容器)

3、安全地完成上述两件事

之前说过,现在不缺了,因为 Docker 1.12 来了,首先是 Swarm 模式

Swarm 模式

解决第一个问题, Docker 1.12 使用了一种名为 Swarm Mode 的全新的工作模式。在这一模式下,Docker 引擎会自动连接到一起,成规模地组队工作。这支队伍被叫做 swarm,安全性方面不用担心——每个 swarm 都是默认安全的!绝不瞎说。

还有,swarm 的创建和管理也异常的简单。要配置一个全新的,受到 TLS 协议和安全密钥保护的 Swarm,只需要两条命令!而这些事情,放到以前,绝对能把你折腾死,白白浪费大量的时间、精力和金钱。相信我,我这么干过,而且绝对不想再干了。而 Swarm Mode 只需要两条傻瓜式命令就能做到这一切!

Services

关于 Swarm 模式,另一个不得不提的事情就是引入 services

在引入 services 之前,我们部署的都是独立容器。如果我们手头有一个 App 应用,包含了 5 个组件,那么部署和管理他们将是一项很沉重的工作。要想使之规模化,是很困难的,运行更新和升级的工作也十分枯燥,引入 services 后,这些问题都烟消云散了,有了 services,同样是带有 5 个组件的 App,我们可以把每个组件定义为一个 Docker Service,而且这些全都是声明式的。这也就意味着,我们可以告诉 Docker 说,“嘿,你要保证始终有 5 个容器在支持我的网页前端服务”,然后 Docker 就会哼哧哼哧地保证始终有 5 个容器在支持你的网页前端服务。就算偶尔崩溃了,修复成本也就一美元!

但这还不是 services 的全部。你是想得到一次需求高峰,还是预测一次需求高峰?要快速测量你的 service,只需要一个简单命令即可,升级也是件手到擒来的事。想要给你 service 使用中的图像换个版本?跟逛公园似的!一个简单的命令下去,你的service 就升级到最新版本了,而同样是这道简单的命令,还能把升级变成无缝升级(rolling update)。举个例子,拿一个带有 200 个容器的service,20 个容器一批,每次同时升级一批,然后在每一批的间隙等待 15 分钟。

说真的,这玩意儿太简单了,连我都能用!

最后的一点感想

我实在看不出来,如果这都不能改变游戏规则,那还有什么是可以的。它解决了大规模普及 Docker 的最大技术障碍!它很安全,可以规模化,而且很简单。这么好的东西,有谁不想要呢?这算不算是对现今行业环境的冲击?当然算是,不过且听我说明,我认为这次冲击是自后向前的,而不是自前向后的!

两者有什么区别呢?自后向前的冲击,是对这个行业的推动。它甩掉了行业的很多包袱(比如操作者的天赋差异,比如大规模生产的瓶颈),让一切变得简单化规模化,从而推动整个行业的正向发展,而且,这个行业也并非不期待出现 Docker 公司这样的生力军。毕竟,就像 Docker 想要发展出一种合作性的行业生态,行业自己也希望凭己之力,不断改变世界,创造价值。

所以在我看来,尽管冲击的力度很大,但这是一次对行业自后向前的积极冲击,而绝对不是从前往后的消极冲击。

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

本文转载自:http://www.linuxprobe.com/docker-game.html

共有 人打赏支持
linuxprobe
粉丝 21
博文 257
码字总数 45072
作品 0
朝阳
私信 提问
Docker1.12尝试

1.Docker存储驱动详解: http://blog.csdn.net/zhangyifei216/article/details/50697855 需要注意的是,docker默认支持集中存储驱动:devicemapper,aufs,overlay,btrfs等。在ubuntu系列,默...

Andy-xu
2016/08/20
1K
0
Docker 的 Web 管理工具--DockerFly

Dockerfly 是基于 Docker1.12+ (Docker API 1.24+) 开发出的 Docker 管理工具,提供了最基本的基于 Docker 的管理功能,目的是能够方便广大 Docker 初学者以及 Docker 管理员能够快速的进行 ...

愚民日记
2017/02/27
14.8K
17
Docker v1.12.0 发布,内置编排机制

Docker v1.12.0 发布了。 这是一个具有重要意义的版本,最大特性就是内置编排机制。Docker1.12通过swarm实现了容器集群,在集群之上可以service命令创建一个服务,实现服务的多实例。在服务之...

zhantan
2016/07/29
3.7K
21
JDocker —— 基于 Docker1.12+ 的开发包

基于 Docker1.12+ (Docker API 1.24+) 开发出的开发包,通过封装 Docker API 使开发者可以快速的使用 Java 开发出控制和操作 Docker 的应用,使用流式操作,简单明了。...

凝小紫
2017/01/27
38
0
Dockerfly —— Docker 的 Web 管理工具

Dockerfly 是基于 Docker1.12+ (Docker API 1.24+) 开发出的 Docker 管理工具,提供了最基本的基于 Docker 的管理功能,目的是能够方便广大 Docker 初学者以及 Docker 管理员能够快速的进行 ...

两味真火
2017/03/01
25
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
今天
6
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
6
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
10
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部