写在最前面 - 每天5分钟玩转Docker容器技术(1)

写在最前面

《每天5分钟玩转Docker容器技术》是一个有关容器技术的教程,有下面两个特点:

  1. 系统讲解当前最流行的容器技术
    从容器的整个生态环境到各种具体的技术,从整体到细节逐一讨论。
  2. 重实践并兼顾理论
    从实际操作的角度带领大家学习容器技术。

为什么要写这个

简单回答是:容器技术非常热门,但门槛高

容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行。

对 IT 行业来说,这是一项非常有价值的技术。而对 IT 从业者来说,掌握容器技术是市场的需要,也是提升自我价值的重要途径。

拿我自己的工作经历来说,毕业后的头几年是做 J2EE 应用开发。后来到一家大型IT公司,公司的产品从中间件到操作系统、从服务器到存储、从虚拟化到云计算都有涉及。

我所在的部门是专门做 IT 基础设施实施服务的,最开始是做传统的 IT 项目,包括服务器配置,双机 HA 等。随着虚拟化技术成熟,工作上也开始涉及各种虚拟化技术的规划和实施,包括 VMWare、KVM、PowerVM等。后来云计算兴起,在公司业务和个人兴趣的驱动下,开始学习和实践 OpenStack,在这个过程中写了《每天5分钟玩转OpenStack》教程并得到大家的认可。

现在以 Docker 为代表的容器技术来了,而且关注度越来越高,这一点可以从 Google Trend 中 Docker 的搜索上升趋势(蓝色曲线)中清楚看到。

每一轮新技术的兴起,无论对公司还是个人既是机会也是挑战。

我个人的看法是:如果某项新技术未来将成为主流,就应该及早尽快掌握
因为:

  1. 新技术意味着新的市场和新的需求
    初期掌握这种技术的人不会很多,而市场需求会越来越大,因而会形成供不应求的卖方市场,物以稀为贵,这对技术人员将是一个难得的价值提升机会。
  2. 学习新技术需要时间和精力,早起步早成材

机会讲过了,咱们再来看看挑战。

新技术往往意味着技术上的突破和创新,会有不少新的概念和方法。
而且从大数据,云计算和容器技术来看,这些新技术都是平台级别,覆盖的技术范围非常广,包括了计算、网络、存储、高可用、监控、安全等多个方面,要掌握这些新技术对 IT 老兵尚有不小难度,更别说新人了。

由于对技术一直保持着很高的热诚和执着,在掌握了 OpenStack 相关 IaaS 技术后,我便开始调研 PaaS 技术栈。正好这时 Docker 也越来越流行,自然而然便开始了容器相关技术的学习研究和实践。

学习容器技术的过程可以说是惊喜不断,经常惊叹于容器理念的先进和容器生态环境的完整和强大。很多传统软件开发和运维中的难题在容器世界里都能轻松解决,也渐渐理解了容器为何如此受到青睐。

不夸张地说,容器为我打开了一扇通往另一个软件世界的大门,让我沉浸其中,激动不已。高兴之余,我也迫不及待地想把我所看到所学到和所想到的有关容器的知识介绍给更多的人,让更多的IT工程师能够从容器技术中受益。

我希望这个教程也能为大家打开这扇门,降低学习的曲线,系统地学习和掌握容器技术。

写给谁看?

这套教程的目标读者包括:

软件开发人员

相信微服务架构(Microservice Architectur)会逐渐成为开发应用系统的主流。而容器则是这种架构的基石。市场将需要更多能够开发出基于容器的应用程序的软件开发人员。

IT 实施和运维工程师

容器为应用提供了更好的打包和部署方式。越来越多的应用将以容器的方式在开发、测试和生产环境中运行。掌握容器相关技术将成为实施和运维工程师的核心竞争力。

我自己

我坚信最好的学习方法是分享。编写这个教程同时也是对自己学习和实践容器技术的总结。对于知识,只有把它写出来并能够让其他人理解,才能说明真正掌握了这项知识。

包含哪些内容?

本系列教程分为《每天5分钟玩转Docker容器技术》和《每天5分钟玩转Docker容器平台》两本,包括以下三大块内容:

下面分别介绍各部分包含的内容。

启程

“启程”会介绍容器的生态系统,让大家先从整体上了解容器都包含哪些技术,各种技术之间的相互关系是什么,然后再来看我们的教程都会涉及生态中的哪些部分。

为了让大家尽快对容器有个感性认识,我们会搭建实验环境并运行第一个容器,为之后的学习热身。

容器技术

这是教程的主要内容,包含“容器核心知识”和“容器进阶知识”两部分。

核心知识主要回答有关容器 what, why 和 how 三方面的问题。 其中以 how 为重,将展开讨论架构、镜像、容器、网络和存储。

进阶知识包括将容器真正用于生产所必需的技术,包括多主机管理、跨主机网络、监控、数据管理、日志管理和安全管理。

这部分内容将在本书《每天5分钟玩转Docker容器技术》中详细讨论。

容器平台技术

如下图所示,“容器平台技术”包括容器编排引擎、容器管理平台和基于容器的 PaaS。容器平台技术在生态环境中占据着举足轻重的位置,对于容器是否能够落地,是否能应用于生产至关重要。

我们将在本系列教程的另一本书《每天5分钟玩转Docker容器平台》中详细讨论容器编排引擎、容器管理平台和基于容器的 PaaS,学习和实践业界最具代表性的开源产品。

怎样的编写方式?

我会继续采用《每天5分钟玩转OpenStack》的方式,通过大量的实验由浅入深地探讨和实践容器技术,力求达到如下目标:

  1. 快速上手:以最直接、最有效的方式让大家把容器用起来。
  2. 循序渐进:由易到难,从浅入深,详细分析容器的各种功能和配置使用方法。
  3. 理解架构:从设计原理和架构分析入手,深入探讨容器的架构和运行机理。
  4. 注重实践:以大量实际操作案例为基础,让大家能够掌握真正的实施技能。

在内容的发布上还是通过微信公众号(cloudman6)每周 1、3、5 定期分享。欢迎大家通过公众号提出问题和建议,进行技术交流。

为什么叫《每天5分钟玩转Docker容器技术》?

为了降低学习的难度并且考虑到移动端碎片化阅读的特点,每次推送的内容大家只需要花5分钟就能看完(注意这里说的是看完,有时候要完全理解可能需要更多时间哈),每篇内容包含1-3个知识点,这就是我把教程命名为《每天5分钟玩转Docker容器技术》的原因。虽然是碎片化推送,但整个教程是系统、连贯和完整的,只是化整为零了。

好了,今天这5分钟算是开了个头,下次我们正式开始玩转容器技术。

时间: 2024-07-31 09:21:16

写在最前面 - 每天5分钟玩转Docker容器技术(1)的相关文章

如何使用 Secret?- 每天5分钟玩转 Docker 容器技术(108)

我们经常要向容器传递敏感信息,最常见的莫过于密码了.比如: docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql 在启动 MySQL 容器时我们通过环境变量 MYSQL_ROOT_PASSWORD 设置了 MySQL 的管理员密码.不过密码是以明文的形式写在 docker run 命令中,有潜在的安全隐患. 为了解决这个问题,docker swarm 提供了 secret 机制,允许将敏感信息加密后保存到 secret 中,用户可以指定哪

什么是 stack?- 每天5分钟玩转 Docker 容器技术(111)

什么是 stack ? 在回答这个问题之前我们先回忆一下前面部署 WordPress 应用的过程: 首先创建 secret. 然后创建 MySQL service,这是 WordPress 依赖的服务. 最后创建 WordPress service. 也就是说,这个应用包含了两个 service:MySQL 和 WordPress,它们之间有明确的依赖关系,必须先启动 MySQL. 为了保证这个依赖关系,我们控制了 docker secret 和 docker service 命令的执行顺序,只

部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)

Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集.检索.可视化 Dashboard.本节将实践用 Graylog 来管理 Docker 日志. Graylog 架构 Graylog 架构如下图所示: Graylog 负责接收来自各种设备和应用的日志,并为用户提供 Web 访问接口. Elasticsearch 用于索引和保存 Graylog 接收到的日志. MongoDB 负责保存 Graylog 自身的配置信息. 与 ELK 一样,Graylog 的部署方案很灵

Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)

service 的容器副本会 scale up/down,会 failover,会在不同的主机上创建和销毁,这就引出一个问题,如果 service 有要管理的数据,那么这些数据应该如何存放呢? 选项一:打包在容器里. 显然不行.除非数据不会发生变化,否则,如何在多个副本直接保持同步呢? 选项二:数据放在 Docker 主机的本地目录中,通过 volume 映射到容器里. 位于同一个主机的副本倒是能够共享这个 volume,但不同主机中的副本如何同步呢? 选项三:利用 Docker 的 volum

验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)

上一节我们成功将 Rex-Ray Volume 挂载到了 Service.本节验证 Failover 时,数据不会丢失. Scale Up 增加一个副本: docker service update --replicas 2 my_web 运行之前我们先推测一下,理想的结果应该是:swarm 在 swarm-worker2 上启动第二个副本,同时也将挂载 volume my_web. 对比一下实际的运行结果: 出现了一点复杂的状况: swarm 首先尝试在 swarm-worker2 上启动第二

初探 ELK - 每天5分钟玩转 Docker 容器技术(89)

在开源的日志管理方案中,最出名的莫过于 ELK 了.ELK 是三个软件的合称:Elasticsearch.Logstash.Kibana. Elasticsearch一个近乎实时查询的全文搜索引擎.Elasticsearch 的设计目标就是要能够处理和搜索巨量的日志数据. Logstash读取原始日志,并对其进行分析和过滤,然后将其转发给其他组件(比如 Elasticsearch)进行索引或存储.Logstash 支持丰富的 Input 和 Output 类型,能够处理各种应用的日志. Kiba

ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)

上一节已经部署了容器化的 ELK,本节讨论如何将日志导入 ELK 并进行图形化展示. 几乎所有的软件和应用都有自己的日志文件,容器也不例外.前面我们已经知道 Docker 会将容器日志记录到 /var/lib/docker/containers/<contariner ID>/<contariner ID>-json.log,那么只要我们能够将此文件发送给 ELK 就可以实现日志管理. 要实现这一步其实不难,因为 ELK 提供了一个配套小工具 Filebeat,它能将指定路径下的日

Secret 的使用场景 - 每天5分钟玩转 Docker 容器技术(109)

我们可以用 secret 管理任何敏感数据.这些敏感数据是容器在运行时需要的,同时我们不又想将这些数据保存到镜像中. secret 可用于管理: 用户名和密码. TLS 证书. SSH 秘钥. 其他小于 500 KB 的数据. secret 只能在 swarm service 中使用.普通容器想使用 secret,可以将其包装成副本数为 1 的 service. 这里我们再举一个使用 secret 的典型场景. 数据中心有三套 swarm 环境,分别用于开发.测试和生产.对于同一个应用,在不同的

Weave Scope 多主机监控 - 每天5分钟玩转 Docker 容器技术(81)

除了监控容器,Weave Scope 还可以监控 Docker Host. 点击顶部 HOSTS 菜单项,地图将显示当前 host. 与容器类似,点击该 host 图标将显示详细信息. host 当前的资源使用情况和历史曲线一览无余.除此之外也能很方便地查看 host 上运行的进程和容器列表,点击容器名字还可以打开此容器的信息页面. host 页面上部有一个按钮,点击可直接打开 host 的 shell 窗口,这个远程管理功能真的很贴心. 多主机监控 前面我们已经领略了 Weave Scope