前言

如今Docker无处不在,这是不争的事实。开发人员都很喜欢它,运维工程亦也需要它。他们都需要深入了解如何在关键业务环境中构建和维护符合生产级别要求的容器化应用,本文将帮助读者掌握它。

对于认为Docker是开发人员专属工具的人来说,恐怕要准备好颠覆自己的认知了。

容器化应用需要有地方运行,也需要有人来管理。如果认为只是开发人员来管理它,那就大错特错了,事实上运维需要构建和运行高性能、生产级别的Docker基础架构。对于专注于运维工作却尚未掌握Docker的朋友来说,日子恐怕不太好过。不过不必焦虑,本文将帮你掌握Docker。


本文将从目录、主要内容和总结这三部分的结构给大家介绍,希望大家能够喜欢!!

目录(有需要的点击此处传送门获取完整版


主要内容

本文总共分为17章的内容,从Docker概览和Docker技术两部分进行全面解析,深入浅出地介绍了Cocker 的相关知识,清晰详细的操作步骤结合大量的实际代码帮助读者学以致用,将Docker知识应用到真实的项目开发当中。

第1章容器发展之路现在容器无疑成为了一种潮流,为了让读者更加全面地了解Docker, 本文就从容器的发展之路开始娓娓道来。

本章主要向读者介绍如下内容、

●容器为什么出现。

●容器的作用。

●容器的应用场景。


第2章走进Docker本章介绍了Docker 公司,这是一家位于旧金山的立志于变更软件行业的科技创业公司。可以说他们是现今容器革命的先行者和推动者。但是现在已经形成了一个由作者和竞争者组成的大型生态。

Docker项目是开源的,其上游源码位于GitHub的moby/moby库。

开放容器计划(OCI )在容器运行时格式和容器镜像格式的标准化方面发挥了重要作用。



第3章Docker安装Docker在Linux和Windows中都是可用的,并且分为社区版(CE)和企业版(EE)。在本章中,主要向读者介绍了在Windows10、Mac OS X、Linux以及Windows Server 2016下的几种安装Docker的方式。

本章还介绍了如何在Ubuntu 16.04和Windows Server 2016环境中升级Docker引擎,这也是两种常见的配置场景。

本章中读者还可以了解到选择正确的存储驱动对于在Linux生产环境中使用Docker非常重要。


第4章纵观Docker在运维部分,我们下载了Docker镜像,启动容器并且登录到容器内部执行相应的命令,最后停止容器并删除。

在开发部分,我们完成了简单应用的容器化过程:从GitHub拉取应用源代码,并且通过Dockerfile中的指令,将应用代码构建到镜像之中。接着运行了该容器化应用。

本章的整体介绍能帮助读者更好地理解接下来的章节,包括镜像与容器相关细节。


第二部分Docker技术;

第5章Docker引擎在本章,我们将快速了解Docker引擎的内部原理。

即便不了解本章的内容,也不影响使用Docker。 因此,读者可自行跳过本章。然而,只有理解了某项技术的底层原理,才能算作真正掌握了它。所以,为了成为真正的Docker大师,建议阅读本章内容。

本章将仅介绍理论,而不涉及相关练习。

本章属于本文技术篇的一部分,因此按照惯例仍然采用“三步法”,分为3个小节来介绍。

简介:在排队购买咖啡的时候就能够读完的,两到三段的概述。

●详解: 详细介绍本章知识的细节。

●命令:快速回顾本章中了解到的相关命令。

下面进入Docker引擎的学习吧!


第6章Docker镜像在本章中会深入介绍Docker镜像的相关内容。本章的目标是能帮助读者建立Docker 镜像的整体认知,并且了解镜像的相关基础操作。在接下来的章节中,本文会向读者展示如何构建一个包含应用的镜像(应用容器化)。

按照惯例,本章节分为如下3个部分。

●简介。

●详解。

●命令。

接下来开始关于镜像的学习吧!


第7章Docker容器现在读者已经对镜像有所了解,是时候开始学习容器了。因为本文主要介绍Docker,所以这里容器特指Docker容器。但是,Docker已经基本实现由OCI发布的镜像和容器标准。这意味着读者在Docker容器这里学习的内容,同样可以在其他实现了OCI标准的容器运行时上应用。

本章内容依旧分为3个部分。

  • 简介。
  • 详解。
  • 命令。

接下来就开始学习容器吧!



第8章应用的容器化Docker的核心思想就是如何将应用整合到容器中,并且能在容器中实际运行。

将应用整合到容器中并且运行起来的这个过程,称为“容器化" ( Containerizing),有时也叫作“Docker 化”( Dockerizing )。

本章将逐步介绍容器化-个简单的Linux Web应用的过程。如果读者没有一个Linux 的Docker环境来跟进练习,那么可以免费使用Play With Docker。只需使用浏览器打开Play WithDocker的页面,并启动若干Linux Docker 节点即可。这是我最喜欢的启动和练习Docker的方式。

本章的内容主要分为3个部分。
●简介。
●详解。
●命令。
下面就开始本章的内容吧!



第9章使用Docker Compose部署应用本章介绍如何使用Docker Compose部署多容器的应用。
Docker Compose与Docker Stack非常类似。本章主要介绍Docker Compose,它能够在Docker节点上,以单引擎模式( Single Engine Mode )进行多容器应用的部署和管理。下一章将介绍DockerStack,它能够以Swarm模式对Docker节点上的多容器应用进行部署和管理。

本章依然分为以下3个部分。
●简介。
●详解。
●命令。



第10章Docker Swarm;本文至此已介绍了如何安装Docker、拉取镜像以及使用容器,接下来需要探讨的话题将是关于规模(Scale)方面的。下 面有请Docker Swarm登场。

概括来说,Swarm 有两个核心组件。
●安全集群。
●编排引擎。
按照惯例,本文分为以下3个部分。
●简介。
●详解。
●命令。

本章示例及其输出将基于Linux 系统的Swarm。 然而,大多数命令和功能在Windows 版Docker.上同样适用。


第11章Docker网络;网络已经无处不在。每当基础设施出现问题时,被抱怨的通常是网络。很大 一部分原因是,网络负责连接一切无网络, 无APP!在Docker早期阶段,网络设计确实非常复杂真的很复杂!那时候配置网络几乎是-一种乐趣。

在本章中,主要介绍了Docker网络体系的基本原理,比如容器网络模型( Container NetworkModel, CNM )以及Libnetwork,同时还会进行实际操作来搭建几种网络。

按照惯例,本章分以下3个部分。
●简介。
●详解。
●命令。


第12章Docker覆盖网络;在大部分与容器网络相关的场景中,覆盖网络都处于核心地位。在本章中会介绍原生Docker覆盖网络的基本要素,以及覆盖网络在Docker Swarm集群中的实现。

Docker覆盖网络在Windows.上基本与Linux相同。这意味着本章示例在Windows和Linux上都会生效。

本章内容按惯例分为如下3个部分。

●简介。
●详解。
●命令。

一起开启网络魔法之旅吧!



第13章****卷与****持久化数据;是时候了解Docker如何管理数据了。本书会关注持久化和非持久化数据。但在本章,会着重关注持久化数据。

本章内容按惯例分为3个部分。
●简介。
●详解。
●命令。



第14章使用Docker Stack部署应用;大规模场景下的多服务部署和管理是一件很难的事情。

幸运的是,Docker Stack为解决该问题而生! Docker Stack通过提供期望状态、滚动升级、简单易用、扩缩容、健康检查等特性简化了应用的管理!这些功能都封装在-一个完美的声明式模型当中。太赞了!

如果读者现在是第-一次接触这些术语,或者感觉难以理解,请不要担心!在阅读完本章后,就能理解这些概念了!

本章内容按惯例分为3个部分。

●简介。
●详解。
●命令。



第15章Docker安全;好的安全性是基于分层隔离的,而Docker恰好有很多分层。Docker 支持所有主流Linux 安全机制,同时Docker自身还提供了很多简单的并且易于配置的安全技术。

本章主要介绍Docker中保障容器安全运行的一些技术。

在本章的深入探索中,内容划分为以下两部分。

●Linux安全技术。
●Docker平台安全技术。

本章大部分章节内容仅适用于Linux。但是,Docker平台安全技术部分是跨平台的,可以应用于Linux以及Windows。



*第16章企业版工具;在本章中,主要关注Docker提供的一- 些企业级工具,包括如何安装、如何配置、如何备份以及存储。

本章内容会比较长,并且大部分都是技术细节的分步介绍。本书尽量保证内容有趣,不过这确实很难。

本章会集中关注Docker公司提供的工具。

让我们直接开始吧。


第17章企业级特性;本章承接第16章的内容,主要涉及Docker 通用控制平面和Docker可信镜像仓库服务提供的企业级特性。

本章将假设读者已经阅读了第16 章的内容,并且了解如何安装和配置它们,以及如何执行备份和恢复操作。

本章内容将分两部分展开。

●简介。
●详解。




总结(有需要的点击此处获取文档完整版


本文适合学习的读者

本文适合对Docker感兴趣的、新手、Docker 技术开发人员以及运维人员阅读,也可作为Docker认证工程师考试的参考。

希望大家能把本文的内容认真学习到手,并且能够灵活运用到工作当中,增加自己的技术深度和广度,让自己变得更有价值!

也希望本文能够得到大家的喜欢!