前言

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

下面我们正式开始玩转Docker容器技术。

 

华为 ServiceStage 实现了全栈式应用开发、测试、部署流程,具备了流水线、微服务、容器服务、APM等功能,目前华为在kubernetes、Docker等开源社区领域贡献均为国内第一,ServiceStage 也是国内CloudNative体系最完善的平台。
在自动化运维领域,CloudNative模式虽然大幅降低了运维成本,但目前业界领先的云解决方案正在向serverless方向演进,serverless也可理解为免运维,平台背后跑的计算、存储和网络完全不用开发人员操心。业界AWS推出的serverless PaaS平台Lambda、step functions、SAM,都基于构建微服务能力。相对目前CloudNative概念,serverless需要解决重量级应用部署;老应用改造成本等问题,未来将有更多的“云原生”概念演进,促进云计算领域蓬勃发展。

Docker容器技术

docker三大概念

容器三大基本概念
镜像 image
容器 container
仓库 repository
docker整个生命周期就是这三个概念。

docker容器生态系统

目录

 

主要内容

本文包含三个部分,11章的内容:

(1)第一部分介绍容器技术生态环境。
第1章鸟瞰容器生态系统
一谈到容器,大家都会想到Docker。

Docker现在几乎是容器的代名词。确实,是Docker将容器技术发扬光大。同时,大家也需要知道围绕Docker 还有一个生态系统。Docker 是这个生态系统的基石,但完善的生态系统才是保障Docker以及容器技术能够真正健康发展的决定因素。

大致来看,容器生态系统包含核心技术、平台技术和支持技术。

 

(2)第二部分是容器核心知识,包括架构、镜像、容器、网络和存储。
第2章容器核心知识概述
容器核心知识主要回答有关容器What、Why 和How三个问题。其中How是重点,将从架构、镜像、容器、网络和存储几个方面进行讲解。

 

第3章Docker镜像

镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。

本章内容安排如下:首先通过研究几个典型的镜像,分析镜像的内部结构;然后学习如何构建自己的镜像;最后介绍怎样管理和分发镜像。

 

第4章Docker容器
上一章我们学习了如何构建Docker 镜像,并通过镜像运行容器。本章将深入讨论容器:学习容器的各种操作、容器各种状态之间如何转换,以及实现容器的底层技术。

 

第5章Docker网络
本章讨论Docker网络。

我们会首先学习Docker 提供的几种原生网络,以及如何创建自定义网络;然后探讨容器之间如何通信,以及容器与外界如何交互。

Docker网络从覆盖范围可分为单个host上的容器网络和跨多个host的网络,本章重点讨论前一种。对于更为复杂的多host 容器网络,我们会在后面进阶技术章节单独讨论。

 

第6章Docker存储
本章讨论Docker存储。

Docker为容器提供了两种存放数据的资源:

(1)由storage driver 管理的镜像层和容器层。

(2) Data Volume。

我们会详细讨论它们的原理和特性。

 

(3)第三部分是容器进阶知识,包括多主机管理、跨主机网络方案、监控和日志管理。

第7章多主机管理
前面我们的实验环境中只有- -个docker host,所有的容器都是运行在这一一个host 上的。但在真正的环境中会有多个host, 容器在这些host 中启动、运行、停止和销毁,相关容器会通过网络相互通信,无论它们是否位于相同的host.

对于这样一个 multi-host 环境,我们将如何高效地进行管理呢?

我们面临的第一个问题是:为所有的host安装和配置Docker。

 

第8章容器网络
前面已经学习了Docker 的几种网络方案: none、 host、bridge 和joined 容器,它们解决了单个Docker Host内容器通信的问题。本章的重点则是讨论跨主机容器间通信的方案,跨主机网络方案包括: (1) docker原生的overlay 和macvlan; (2) 第三方方案:常用的包括flannel、 weave 和calico.

docker网络是一个非常活跃的技术领域,不断有新的方案开发出来,那么要问个非常重要的问题:如此众多的方案是如何与docker 集成在一起的?

答案: libnetwork 以及CNM。

 

第9章容器监控
当Docker 部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越重要。

在本章中,我们将讨论几个目前比较常用的容器监控工具和方案,为大家构建自己的监控系统提供参考。

首先我们会讨论Docker 自带的几个监控子命令: ps、 top 和stats, 然后是几个功能更强的开源监控工具sysdig、 Weave Scope. cAdvisor 和Prometheus,最后我们会对这些不同的工具和方案做一个比较。

 

第10章日志管理
高效的监控和日志管理对保持生产系统持续稳定的运行以及排查问题至关重要。

在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要。考虑到容器短暂和不固定的生命周期,当我们需要debug问题时有些容器可能已经不存在了。因此,一套集中式的日志管理系统是生产环境中不可或缺的组成部分。

本章 我们将讨论监控容器的各种可用技术和方案,首先会介绍Docker自带的logs子命令,然后讨论Docker 的logging driver, 接下来通过实践学习几个已经广泛应用的日志管理方案: ELK、Fluentd 和Graylog。

 

第11章数据管理

从业务数据的角度看,容器可以分为两类:无状态(stateless) 容器和有状态(tateful) 容谷。

无状态是指容器在运行过程中不需要保存数据,每次访问的结果不依赖上一一次访问,比如提供静态页面的Web 服务器。

有状态是指容器需要保存数据,而且数据会发生变化,访问的结果依赖之前请求的处理结果,最典型的就是数据库服务器。

简单来讲,状态(state) 就是数据,如果容器需要处理并存储数据,它就是有状态的,反之则无状态。

对于有状态的容器,如何保存数据呢?

前面在Docker存储章节我们学习到data volume可以存储容器的状态,不过当时讨论的volume其本质是Docker 主机本地的目录。

本地目录就存在-一个隐患:如果Docker Host宕机了,如何恢复容器?

一个办法就是定期备份数据,但这种方案还是会丢失上次备份到宕机这段时间的数据。更好的方案是由专门的storage provider提供volume,

Docker从provider那里获取volume 并挂载到容器。这样即使Host 挂了,也可以立刻在其他可用Host 上启动相同镜像的容器,同时直接挂载之前使用的volume, 这样不会有数据丢失。

本章将详细讨论如何实现跨Docker 主机管理data volume。

 

这份【 每天5分钟玩转Docker容器技术】共有252页,已经整理打包好,需要完整版内容的朋友,可以转发此文关注小编👇👇👇

使用方法

(1)跟着教程进行操作,在实践中掌握Docker 容器技术的核心技能。

(2)在之后的工作中,可将本教程作为重要参考,按需查找相关知识点。

祝大家早日掌握容器技术,实现和提升自我价值~~~~~~~

 

给大家一些鸡汤

1.成功永远属于马上行动的人。

2.做正确的事,再把事情做正确。

3.没有退路时潜能就发挥出来了。

4.人生的意义就在于人的自我完善。

5.命运总是光临在那些有准备的人身上。