在这里插入图片描述

前言

最近更新完 Go 系列之后打算更新关于Go语言的一些开源项目,于是想到了大名鼎鼎的 Docker 容器,索性就打算专门开一系列关于Docker的学习文章。同时博主舍友的面试进度很顺利,希望他早日成为南极(鹅厂)人😄,也希望深圳房租可以低一些,照顾照顾异地实习的大学生吧😄😄

加粗样式


简介

Docker 是一种运行于 Linux 和 Windows 上的软件,用于创建、管理和编排容器。
Docker 是在 GitHub 上开发的 Moby 开源项目的一部分。
Docker 公司,位于旧金山,是整个 Moby 开源项目的维护者。
Docker 公司还提供包含支持服务的商业版本的 Docker。


思考

倘若现在有个实际需求场景,需要在一百台服务器上都配置 jdk, python, mysql, redis , nodejs 等服务,你会倾向于重复一百次相同的安装配置操作,还是更倾向于只安装配置一次这些服务,然后把这些服务装进一个容器里面,然后只需要把这个容器拷贝到其他的服务器里面,然后启动这个容器里面的各个服务呢?


作用

就正如官网介绍

Accelerate how you build, share and run modern applications

翻译:加速构建、共享和运行现代应用程序的方式

上面的思考题的应用场景,正适合用 Docker 容器技术来解决,只需要在一台服务器中 用 Docker 配置一次各个服务,然后把镜像文件打包,再把这个镜像文件发布到其他的服务器中,就可以快速解决生产环境的部署问题。非常高效。这样子的解决思路是不是很妙呢?😄
在这里插入图片描述


容器生态

Docker 公司的一个核心哲学通常被称为“含电池,但可拆卸”(Batteries included but removable)。

意思是许多 Docker 内置的组件都可以替换为第三方的组件,网络技术栈就是一个很好的例子。

Docker 核心产品内置有网络解决方案。但是网络技术栈是可插拔的,这意味着 Docker 内置的网络方案可以被替换为第三方的方案。许多人都会这样使用。

早期的时候,经常出现第三方插件比 Docker 提供的内置组件更好的情况。然而这会对 Docker 公司的商业模式造成冲击。毕竟,Docker 公司需要依靠盈利来维持基业长青。

因此,“内置的电池”变得越来越好用了。这也导致了生态内部的紧张关系和竞争的加剧。

简单来说,Docker 内置的“电池”仍然是可插拔的,然而越来越不需要将它们移除了。

尽管如此,容器生态在一种良性的合作与竞争的平衡中还是得以繁荣发展。

在谈及容器生态时,人们经常使用到诸如“co-opetition”(意即合作与竞争,英文中 co-operation 与 competition 合并的词)与“frenemy”(英文中朋友 friend 与敌人 enemy 合并的词)这样的字眼。这是一个好现象!因为良性的竞争是创新之母。


开放容器计划

如果不谈及开放容器计划(The Open Container Initiative, OCI)的话,对 Docker 和容器生态的探讨总是不完整的。下图所示为 OCI 的Logo。
在这里插入图片描述

OCI的Logo

OCI 是一个旨在对容器基础架构中的基础组件(如镜像格式与容器运行时)进行标准化的管理委员会。

同样,如果不谈历史的话,对 OCI 的探讨也是不完整的。

一个名为 CoreOS 的公司不喜欢 Docker 的某些行事方式。因此它就创建了一个新的开源标准,称作“appc”,该标准涉及诸如镜像格式和容器运行时等方面。

此外它还开发了一个名为 rkt(发音“rocket”)的实现。

两个处于竞争状态的标准将容器生态置于一种尴尬的境地。

这使容器生态陷入了分裂的危险中,同时也令用户和消费者陷入两难。虽然竞争是一件好事,但是标准的竞争通常不是。因为它会导致困扰,降低用户接受度,对谁都无益。

考虑到这一点,所有相关方都尽力用成熟的方式处理此事,共同成立了 OCI ——一个旨在管理容器标准的轻量级的、敏捷型的委员会。

OCI 已经发布了两份规范(标准):镜像规范和运行时规范。

提到这两项标准时,经常用到的比喻就是铁轨。它们就像对铁轨的尺寸和相关属性达成一致,让所有人都能自由地建造更好的火车、更好的车厢、更好的信号系统、更好的车站等。

只要各方都遵循标准就是安全的。没人会希望在铁轨尺寸问题上存在两个相互竞争的标准!

公平地说,这两个 OCI 规范对 Docker 的架构和核心产品设计产生了显著影响。Docker 1.11 版本中,Docker 引擎架构已经遵循 OCI 运行时规范了。

到目前为止,OCI 已经取得了不错的成效,将容器生态团结起来。然而,标准总是会减慢创新的步伐!尤其是对于超快速发展的新技术来说更是如此。

这在容器社区引起了热烈的讨论。这应该算是好事!容器技术正在重塑世界,走在技术前列的人们有热情、有想法,这很正常。

OCI 在 Linux 基金会的支持下运作,Docker 公司和 CoreOS 公司都是主要贡献者。


总结

每一门新技术的出现大部分都是为了解决某个现实生活中的问题,或者是优化某个技术某方面的缺陷,在学习一门新技术的时候,可以先从介绍开始,了解这门技术解决的是什么问题?我们该如何学习它,它的思想,底层原理算法,这些都是进阶必备的学习技能。希望有共鸣的童鞋可以给博主点个赞👍👍!

在这里插入图片描述


坚持分享,坚持原创,喜欢博主的靓仔靓女们可以看看博主的首页博客!
您的点赞与收藏是我分享博客的最大赞赏!
博主博客地址: https://blog.csdn.net/weixin_43967679

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐