从 0 到 1 工程实践 (6): 基于容器工程化

叁叁肆2018-11-13 11:45

欢迎访问网易云社区,了解更多网易技术产品运营经验。


2.2 基于容器工程化


Docker 容器可以在不同的开发与产品发布生命周期中保证一致性,进而标准化你的环 境。除此之外,Docker 镜像还可以像 Git 仓库一样,让你提交变更到镜像中并通过不同的 版本来管理它们。设想如果你因为完成了一个组件的升级而导致整个环境都损坏了,可以 轻松回滚到这个镜像的前一个版本。整个过程只要在几秒内完成,就能满足产品对于快速 迭代及快速发布回滚的需求。

2.2.1 Docker 及作用


容器不是什么新技术,只是隔离及封装操作系统资源的一种方式。技术潮起潮落,往 往革命性的技术都是被人们关注已久的旧技术,所谓“新瓶装旧酒”,风味尤佳!容器技术 由来已久,历史上的容器技术如表 2-2 所示。

从表 2-2 可以看出,Docker 并不是最新的容器技术,但从一定意义上来说,Docker 开 创了 Linux 容器界的文艺复兴时代,人们对 Docker 的关注持续增长,不断发掘适用场景, 使得容器技术得到广泛的认知和应用。 


创新并不意味着要创造出全新技术,借助 Docker 的势头,容器技术一跃成为一种颠覆 性的技术,它能改变 IT 行业的格局、相关的生态系统和云计算市场。


1. Docker 简介


Docker 的诞生 

2013 年 3 月 15 日,在加利福尼亚州圣克拉拉市举办的 Python 开发者大会上,dotCloud 的创始人兼 CEO Solomon Hykes 在一个短短 5 分钟的微型演讲“The future of Linux Containers”中向世人宣布了 Docker,并当场向观众演示了 Docker 的 Hello World 示例(参 见安装 Docker 环境)。宣布 Docker 时,在 dotCloud 公司之外只有 40 人有机会使用 Docker。但就在宣布之后的几周之内,Docker 得到了广泛的报道,很快 Docker 开源了,源码托管在 GitHub 中,任何人都可以下载或者为这个项目做贡献。在接下来的几个月里,业界听 说 Docker 的人越来越多。从此,Docker 带动了一股容器浪潮,引爆了容器市场。直至今天, 业界几乎没有人不知道 Docker。但还是有一些人不确定 Docker 是什么,它能做什么?下文 就为读者“拨开云雾见天日”。


一句话解释 Docker 

Docker 是一个开源的容器引擎,提供了一套完整的容器解决方案。Docker 经历了积淀、 变革及进化 3 个过程。容器是一种历史悠久的虚拟化技术,一个容器实质上就是运行在宿 主机上的一个进程。容器的最小组成公式如下。
容器 = cgroups + namespaces + rootfs + engine


其中,
 cgroups 是资源控制。
 namespaces 是访问隔离。
 rootfs 是文件系统。
 engine 是容器引擎,控制容器生命周期。


Docker 一直将自己比作集装箱,表 2-3 通过和集装箱对比,解析 Docker 的特性。 


Docker 容器的优势 

Docker 容器的优势,和虚拟机(VM)相比较尤为显著,如表 2-4 所示。

总的来说,Docker 更轻量、更快速、更便捷,它是一套以容器技术为核心的,用于应 用的构建、发布和执行的体系和生态。


2. 安装 Docker 环境


随着 Docker 工具链的完善,在各个平台上安装 Docker 非常容易。


Linux 

Docker 原生支持大多数 64 位 Linux,大多数流行的 Linux 发行版都源自 Debian 或 Red Hat,安装起来大同小异,本节会以常用的 Debian 和 CentOS 为例演示安装,如果你有在其 他 Linux 下安装 Docker 的需求,可以访问 Linux 安装的官方网址:Install Docker on Linux distributions。


另外,在 Linux 下也可以使用官方提供的脚本来安装 Docker,一键安装,简单快捷!


$ sudo curl -sSL https://get.docker.com/ | sh


Mac 和 Windows 

对 Mac OS X 和 Microsoft Windows 而言,最推荐的安装方式莫过于 Docker 官方提供 的 Native 应用安装包了。随着 Docker 的发展,安装过程也越来越方便,官网文档链接的讲 解已经非常详细,这里就不赘述。


Mac 的 Docker 安装:https://docs.docker.com/docker-for-mac/install/
Windows 的 Docker 安装:https://docs.docker.com/docker-for-windows/install/

文章节选自《云原生应用架构实践》 网易云基础服务架构团队 著


网易云计算基础服务深度整合了 IaaSPaaS 及容器技术,提供弹性计算、DevOps 工具链及微服务基础设施等服务,帮助企业解决 IT、架构及运维等问题,使企业更聚焦于业务,是新一代的云计算平台。点击可免费试用