首页>参考读物>计算机科学与技术>软件与程序设计

Docker从入门到实战
作者 : 黄靖钧 编著
出版日期 : 2017-07-21
ISBN : 978-7-111-57328-9
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 352
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书从Docker的相关概念与基础知识讲起,结合实际应用,通过不同开发环境的实战例子,详细介绍了Docker的基础知识与进阶实战的相关内容,以引领读者快速入门并提高。
本书共19章,分3篇。第1篇容器技术与Docker概念,涵盖的内容有容器技术、Docker 简介、安装 Docker等。第2篇Docker基础知识,涵盖的内容有Docker 基础、Docker 镜像、Docker文件、Docker 仓库、Docker 容器、数据卷、网络管理等。第3篇Docker进阶实战,涵盖的内容有操作系统、编排工具Compose、Web 服务器与应用、数据库、编程语言、Docker API、私有仓库、集群网络、Docker 安全等。
本书非常适合所有对Docker感兴趣的入门新手阅读。不管你是开发人员还是运维人员,都可以通过本书学习Docker的基本知识。如果你不是程序员,本书同样适合你,普通用户完全可以把Docker当做一个“好玩的工具”来使用,以体验Docker带来的便捷。

图书特色

Docker从入门到实战
黄靖钧 编著
书号:978-7-111-57328-9
印张:22.75
书脊:17mm
定价:69.00元
成品尺寸:185*260mm


上架:计算机/网络管理
-------------------------------

Introduction and Advanced Usage of Docker

深度剖析Docker的核心概念、实现原理、应用技巧和生态系统
结合实际生产环境,通过实战案例提供有价值的应用参考

涵盖Docker四大管理工具的基本知识,并深入分析
从三大组件入门应用到集群编排进阶实战,条理清晰
结合实际生产环境介绍上百个案例,内容都是有价值的干货
以Docker当前的流行版本为例讲解Swarm集群管理


------------------------------

内容简介

本书从Docker的相关概念与基础知识讲起,结合实际应用,通过不同开发环境的实战例子,详细介绍了Docker的基础知识与进阶实战的相关内容,以引领读者快速入门并提高。
本书共19章,分3篇。第1篇容器技术与Docker概念,涵盖的内容有容器技术、Docker简介、安装Docker等。第2篇Docker基础知识,涵盖的内容有Docker基础、Docker镜像、Dockerfile文件、Docker仓库、Docker容器、数据卷、网络管理等。第3篇Docker进阶实战,涵盖的内容有操作系统、编排工具Compose、Web服务器与应用、数据库、编程语言、Docker API、私有仓库、集群网络、Docker安全等。
本书非常适合所有对Docker感兴趣的入门新手阅读。不管是开发人员还是运维人员,都可以通过本书学习Docker的基本知识。即使不是程序员的读者,本书同样适合。普通用户完全可以把Docker作为一个“好玩的工具”来使用,以体验Docker带来的便捷。

-----------------------------------

本书核心内容

容器技术与Docker概念
认识容器技术
Docker基本概念
安装和测试Docker

Docker基础知识
Docker操作命令
镜像的结构
镜像的拉取、修改与删除
镜像的体积控制
镜像的推送
容器的迁移与提交
镜像仓库
数据卷操作
容器网络操作

Docker进阶实战
操作系统镜像构建
Web服务镜像构建
数据库镜像构建
Compose与Machine
编程语言
Docker API
私有仓库的部署和使用
集群网络
容器安全
Docker网络生态

本书源代码获取方式
本书涉及的源代码文件需要读者下载。请在www.hzbook.com网站上搜索到本书页面,然后按照页面上的下载说明下载即可。


--------------------------------------------------
作者简介

黄靖钧 全栈开发者,热衷开源技术。长期以来一直使用容器技术作为应用部署方案,在Docker容器实战方面经验丰富。有多年的大规模集群管理经验。曾经从事PaaS与CaaS项目开发。现专注于Serverless与SDN等领域的研究。

图书前言

Docker作为一个2013年才诞生的开源项目,其发展的速度和火爆程度却令人惊叹。容器技术本不是什么新鲜事物,但是在Docker的整合下,一切变得清晰、易用起来,并且随着各大云计算厂商的进场,使Docker得到了极大的推广。
如今,Docker已经成为容器技术领域当仁不让的领头羊。国内外以Docker技术起家的创业公司如雨后春笋般涌现出来,体现了容器市场的巨大需求。越来越多的企业开始逐步把传统的应用开发流程迁移到Docker容器中作为开发部署流程的一环。伴随而来的是各种复杂的需求与Docker尚不算完善的功能所产生的矛盾,这些问题制约着企业容器化的脚步。
另一方面,Docker以其友好的使用体验使广大开发者对其“一见倾心”,越来越多的开发者使用Docker作为应用分发部署的一个重要阵地。尽管如此,Docker对于大部分开发者而言还是尚未开拓的疆土。特别是对于国内环境而言,Docker的推广基本上靠国内几家与Docker相关的初创公司。本书以一位普通的全栈开发者的身份,详细介绍了Docker的基础知识,分享了企业级容器云的实战经验。
为什么学习Docker
如果您是一名开发者,想必遇到过“这个程序只有在我的机器上才可以运行”的情况。随着用户需求变得多样,软件愈发复杂,所依赖环境愈发庞大,使得软件在其他机器上运行需要做大量的迁移工作。更糟糕的是,这些琐事完成后软件还不一定能正常运行。
为了解决这些问题,虚拟化技术开始普及。人们可以通过各种虚拟化技术来实现软件的迁移和分发。最常见的就是虚拟机或KVM技术。在虚拟机里完成开发再迁移到线上不会出现环境问题,解决了迁移过程中的诸多难题,但是仍然存在性能低下、分发流程麻烦、耗时和成本昂贵等问题。在云计算时代这些问题更加突出。
随着容器技术的普及,人们意识到容器技术可以极大地降低成本。容器技术具有启动快、体积小和分发迅速等诸多特点,这简直就是开发人员梦寐以求的工具。
而“欣喜若狂”的不止是开发人员,还有运维人员。如果在十年前,普通企业要管理上百台服务器,最可能使用的方法是通过Shell脚本的方式使用SSH连接到所有服务器然后执行相同的指令,并把日志保存起来归档。这种方式我们称之为第一代运维。那时维护服务器是一项繁重的工作,工程师不得不把大量的时间耗费在服务器管理上。
随着技术的发展,虚拟化技术的普及和云计算的出现,企业需要管理的服务器数量大幅增长。过去我们只要管理企业内部数据中心的物理服务器,而现在则要管理遍布全球的服务器,运维成本愈发昂贵。于是开发者开始针对云计算时代服务器运维方式做出改变,涌现出了诸如Ansible、Puppet、SaltStack和Chef等出色的运维工具。人们可以通过这些工具快速地完成对上百台甚至上千台服务器的管理操作。这被称之为第二代运维。它极大地解决了管理庞大服务器集群的难题,使人们可以在屏幕面前通过一个界面管理所有服务器。但本质上这些工具都是通过SSH或者类似于SSH的方式连接到服务器来管理服务器集群,这意味着其实第二代运维和第一代运维并没有发生根本性的改变。
上面那些运维工具在云计算普及的大势下很快暴露了它们的问题——速度。因为大部分运维工具依靠的是SSH连接来交换信息,这使得整个过程十分耗时,更不用说其他复杂的管理操作。而随着容器技术的爆发,以Docker为代表的容器技术开始发力,并随着DevOps概念的普及,使运维发生了根本性的改变。容器集群管理不再是通过低效的SSH来连接服务器,甚至不需要登录服务器就可以完成对服务器的管理。人们发现,通过容器管理集群可以抛弃传统的“SSH+秘钥”的连接方式来连接服务器,这对大规模集群来说是一个极大的变革。而且在速度上,容器技术在上百台服务器上启动应用只需要一眨眼的时间,这使得运维的工作大大减轻。
运维和开发在容器时代逐步“融为一体”,形成一个流水线车间的工作环境。这对于软件行业来说无疑是一次巨大的变革。
如果您也对传统的软件开发和运维的烦琐流程感到吃力,又对容器技术感兴趣,那么本书将是很好的入门书籍。
如果您不是职业的开发和运维人员,对Linux也不算熟悉,但属于一个对Docker感兴趣的极客,想通过Docker部署一些复杂的应用,本书也一样适合您。本书虽以Linux为平台介绍Docker的使用,但是与在Windows和Mac OS平台上的操作基本一致,普通用户完全可以把Docker当做一个“好玩的工具”来使用,体验Docker带来的便捷。
本书特色
适合新手入门。本书在基础方面内容非常详尽,包括镜像的构建、容器的运行监控、网络的管理、仓库的应用、集群的部署等内容,全面、细致地介绍了Docker的基本使用方法与实现原理,适合新手入门。
应用结合实际。本书在实战应用部分结合实际应用,从不同的角度分析问题并提出对应的解决办法,扩展了很多实用的实战技巧。实战部分根据不同类型的开发环境构建基础开发环境镜像,使读者可以直接使用Docker进入测试开发,并根据不同类型的应用部署做了详细介绍。
范例丰富。在实战章节中的范例皆由浅入深,全面、实用且不缺乏趣味性,有助于读者了解其内部原理,进而应用到其他项目的思考与开发中。全书的代码均有指明出处以及链接,读者可以通过文中链接找到源代码。
版本最新。本书使用目前流行的Docker 1.12版本,紧跟Docker更新步伐,介绍了新的Docker Swarm集群管理方式。
本书内容体系
第1篇 容器技术与Docker概念(第1~3章)
本篇主要介绍了容器技术的发展历史与容器技术的原理,并解释了Docker与其他容器技术的区别,对比了Docker与虚拟机的异同,客观地评价了两者的优缺点。另外,本篇还介绍了Docker分别在Linux、Windows和Mac OS系统下的安装方法,以及二进制安装方法。
第2篇 Docker基础知识(第4~10章)
本篇主要介绍了Docker的基本操作及简单应用,包括Docker基础、Docker镜像、Docker file文件、Docker仓库、Docker容器、数据卷的使用方法与原理及网络管理等内容。通过对本篇内容的学习,读者可以掌握最常用的Docker知识。
第3篇 Docker进阶实战(第11~19章)
本篇包含了许多Docker在实际开发中的应用实例,包括操作系统、编排工具Compose、Web 服务器与应用、数据库、编程语言、Docker API、私有仓库、集群网络、Docker 安全等内容,详细讲解了Docker在容器云环境中的应用。读者通过这部分内容的学习已经完全可以在实际生产环境中应用Docker了。
本书读者对象
Dock开发入门人员;
容器技术爱好者;
各类运维人员;
基于Docker构建云计算平台的技术人员;
大、中专院校的学生;
相关培训学校的学员。
本书配套资源及获取方式
本书涉及的源代码文件等配套学习资源需要读者自行下载。请读者登录机械工业出版社华章分社的网站www.hzbook.com,然后搜索到本书页面,按照页面上的说明进行下载即可。
本书作者
本书由黄靖钧主笔编写。其他参与编写的人员有张昆、张友、赵桂芹、晁楠、高彩琴、郭现杰、刘琳、王凯迪、王晓燕、吴金艳、尹继平、张宏霞、张晶晶、陈冠军、魏春、张燕、范陈琼、孟春燕、王晓玲、顼宇峰、肖磊鑫、薛楠、杨丽娜、闫利娜、王韶、李杨坡、刘春华、黄艳娇、刘雁。
本书的顺利出版,要感谢机械工业出版社华章分社各位编辑的辛勤劳动和付出,另外对网络上提供有益资料的众多作者也在此表示感谢。
虽然我们对本书中所述内容都尽量核实,并多次进行文字校对,但因时间所限,加之水平所限,书中疏漏和错误在所难免,敬请广大读者批评指正。

上架指导

计算机\网络

封底文字

本书从Docker的相关概念与基础知识讲起,结合实际应用,通过不同开发环境的实战例子,详细介绍了Docker的基础知识与进阶实战的相关内容,以引领读者快速入门并提高。
本书共19章,分3篇。第1篇容器技术与Docker概念,涵盖的内容有容器技术、Docker简介和安装Docker等。第2篇Docker基础知识,涵盖的内容有Docker基础、Docker镜像、Dockerfile文件、Docker仓库、Docker容器、数据卷和网络管理等。第3篇Docker进阶实战,涵盖的内容有操作系统、编排工具Compose、Web服务器与应用、数据库、编程语言、Docker API、私有仓库、集群网络和Docker安全等。
本书非常适合对Docker感兴趣的入门新手阅读。不管是开发人员还是运维人员,都可以通过本书学习Docker的基本知识。即使不是程序员的读者,本书也同样适合,普通用户完全可以把Docker当做一个“好玩的工具”来使用,以体验Docker带来的便捷。

作者简介

黄靖钧 编著:暂无相关简介

图书目录

前言
第1篇 容器技术与Docker概念
第1章 容器技术 2
1.1 什么是容器 2
1.1.1 关于虚拟化 2
1.1.2 容器的定义 3
1.1.3 为什么使用容器 3
1.2 容器技术的前世今生 4
1.2.1 容器技术的起源 4
1.2.2 容器技术的发展 5
1.3 容器的原理 7
1.3.1 从namespace说起 7
1.3.2 认识Cgroups 9
1.3.3 容器的创建 11
1.4 容器云 12
1.5 容器与Docker 13
1.6 本章小结 13
第2章 Docker简介 14
2.1 什么是Docker 14
2.1.1 Docker的历史 14
2.1.2 Docker的现状 16
2.1.3 Docker的未来 17
2.2 Docker的功能及优缺点 18
2.2.1 Docker在解决什么 18
2.2.2 为什么选择Docker 19
2.2.3 Docker的缺点 19
2.3 Docker和虚拟机 19
2.3.1 Docker与虚拟机的区别 20
2.3.2 Docker与虚拟机的优缺点 20
2.4 Docker与runC 21
2.4.1 libcontainer与runC 21
2.4.2 runC的使用 22
2.4.3 runC原理 22
2.5 Docker基本架构 24
2.5.1 Docker Client介绍 24
2.5.2 Docker daemon介绍 25
2.5.3 Docker镜像 25
2.5.4 Docker容器 26
2.5.5 Docker仓库 26
2.6 本章小结 26
第3章 安装Docker 27
3.1 Linux系统 27
3.1.1 一键安装脚本 27
3.1.2 Debian发行版 28
3.1.3 Ubuntu发行版 30
3.1.4 Centos/Fedora发行版 33
3.1.5 Arch Linux发行版 37
3.1.6 Suse/openSUSE发行版 38
3.2 Windows与Mac OS系统 38
3.2.1 在Windows上安装原生Docker 39
3.2.2 在Mac OS上安装原生Docker 41
3.3 二进制安装 43
3.3.1 获取Linux二进制包 44
3.3.2 获取Mac OS X二进制包 44
3.3.3 获取Windows的二进制包 45
3.3.4 树莓派安装Docker 45
3.4 本章小结 46
第2篇 Docker基础知识
第4章 Docker基础 48
4.1 Docker基本操作 48
4.1.1 依附容器的docker attach命令 49
4.1.2 构建镜像的docker build命令 51
4.1.3 提交容器的docker commit命令 52
4.1.4 复制文件到宿主机的docker cp命令 52
4.1.5 创建容器的docker create命令 53
4.1.6 查看容器变化的docker diff命令 54
4.1.7 查看事件的docker events命令 54
4.1.8 进入容器的docker exec命令 55
4.1.9 导出容器的docker export命令 56
4.1.10 查看镜像历史的docker history命令 56
4.1.11 查看本地镜像的docker images命令 57
4.1.12 导入容器的docker import命令 58
4.1.13 查看Docker信息的docker info命令 58
4.1.14 查看各项详细信息的docker inspect命令 59
4.1.15 杀死容器的docker kill命令 60
4.1.16 导入镜像的docker load命令 60
4.1.17 登录仓库的docker login命令 61
4.1.18 登出仓库的docker logout命令 61
4.1.19 查看容器日志的docker logs命令 62
4.1.20 管理网络的docker network命令 62
4.1.21 管理节点的docker node命令 63
4.1.22 暂停容器的docker pause命令 64
4.1.23 查看容器端口的docker port命令 64
4.1.24 查看本地容器信息的docker ps命令 65
4.1.25 拉取镜像的docker pull命令 65
4.1.26 推送镜像的docker push命令 66
4.1.27 重命名容器的docker rename命令 66
4.1.28 重启容器的docker restart命令 66
4.1.29 删除容器的docker rm命令 67
4.1.30 删除镜像的docker rmi命令 67
4.1.31 运行容器的docker run命令 68
4.1.32 导出镜像的docker save命令 72
4.1.33 搜索镜像的docker search命令 73
4.1.34 管理服务的docker service命令 74
4.1.35 启动容器的docker start命令 74
4.1.36 查看容器状态的docker stats命令 75
4.1.37 停止容器的docker stop命令 75
4.1.38 管理集群的docker swarm命令 76
4.1.39 设置镜像标签的docker tag命令 76
4.1.40 查看容器进程的docker top命令 77
4.1.41 恢复暂停容器的docker unpause命令 77
4.1.42 更新容器的docker update命令 77
4.1.43 查看Docker版本的docker version命令 78
4.1.44 管理数据卷的docker volume命令 78
4.1.45 设置等待的docker wait命令 79
4.2 启动第一个Docker容器 79
4.3 构建第一个Docker镜像 80
4.4 本章小结 81
第5章 Docker镜像 82
5.1 认识镜像 82
5.1.1 使用docker pull拉取镜像 82
5.1.2 搜索镜像 83
5.1.3 查看镜像信息 84
5.2 创建镜像 86
5.2.1 剖析Hello World镜像 86
5.2.2 从Dockerfile构建镜像 86
5.2.3 自动构建镜像 87
5.2.4 提交容器为镜像 90
5.3 导出和导入镜像 91
5.3.1 导出镜像到本地文件系统 91
5.3.2 从本地文件系统导入镜像 91
5.4 发布镜像 91
5.4.1 发布镜像到Docker Hub 92
5.4.2 给镜像打上标签 92
5.4.3 发布到第三方镜像仓库 92
5.5 删除镜像 93
5.5.1 删除本地镜像 93
5.5.2 删除仓库镜像 93
5.6 Docker镜像扩展 94
5.6.1 Docker镜像里有什么 94
5.6.2 Docker镜像的存储方式 95
5.6.3 联合挂载 95
5.6.4 Git式管理 96
5.7 本章小结 96
第6章 Dockerfile文件 97
6.1 Dockerfile基本结构 97
6.1.1 Dockerfile基础 97
6.1.2 Dockerfile的书写规则 98
6.1.3 基础镜像信息和维护者信息 99
6.2 Dockerfile指令 99
6.2.1 指定基础镜像的FROM指令 99
6.2.2 设置维护者信息的MAINTAINER指令 99
6.2.3 执行构建命令的RUN指令 99
6.2.4 设置镜像环境变量的ENV指令 100
6.2.5 复制文件的COPY指令 100
6.2.6 添加文件的ADD指令 100
6.2.7 指定端口暴露的EXPOSE指令 100
6.2.8 设置镜像启动命令的CMD指令 101
6.2.9 设置接入点的ENTRYPOINT指令 102
6.2.10 设置数据卷的VOLUME指令 102
6.2.11 设置构建用户的USER指令 103
6.2.12 设置工作目录的WORKDIR指令 103
6.2.13 设置二次构建指令的ONBUILD指令 104
6.2.14 设置元数据的LABEL指令 105
6.2.15 设置构建变量的ARG指令 105
6.2.16 设置停止信号的STOPSIGNAL指令 105
6.2.17 检查镜像状态的HEALTHCHECK指令 105
6.2.18 设置命令执行环境的SHELL指令 106
6.3 镜像构建实战 106
6.3.1 收集应用信息 106
6.3.2 编写Dockerfile 106
6.3.3 设置自动构建 107
6.4 本章小结 108
第7章 Docker仓库 109
7.1 官方仓库Docker Hub 109
7.1.1 Docker Hub登录与使用 109
7.1.2 Docker Hub与Docker Cloud 110
7.2 国内镜像仓库 111
7.2.1 中国科学技术大学镜像仓库 111
7.2.2 DaoCloud镜像加速器 112
7.2.3 阿里云镜像加速器 113
7.2.4 灵雀云镜像加速器 114
7.2.5 时速云镜像加速器 115
7.2.6 网易蜂巢 116
7.2.7 自建镜像加速器 116
7.3 私有仓库 117
7.3.1 搭建私有仓库 117
7.3.2 私有仓库的使用 117
7.3.3 私有仓库安全性 118
7.4 Registry原理 118
7.4.1 Registry组成 118
7.4.2 Registry工作流程 119
7.5 本章小结 120
第8章 Docker容器 121
8.1 容器基本操作 121
8.1.1 创建容器 122
8.1.2 启动容器 122
8.1.3 后台运行容器 123
8.1.4 自动重启容器 123
8.1.5 停止与杀死容器 124
8.1.6 删除容器 125
8.1.7 查看容器信息 125
8.2 进入容器内部 128
8.2.1 使用attach进入容器 128
8.2.2 使用exec进入容器 129
8.2.3 使用nsenter进入容器 129
8.3 导出和导入容器 130
8.3.1 导出容器 130
8.3.2 导入容器 130
8.4 容器结构 131
8.4.1 容器格式是什么 131
8.4.2 容器内部结构 132
8.5 本章小结 133
第9章 数据卷 134
9.1 数据卷是什么 134
9.1.1 数据卷介绍 134
9.1.2 数据卷容器介绍 135
9.2 为容器挂载数据卷 135
9.2.1 挂载数据卷 135
9.2.2 挂载数据卷容器 136
9.2.3 数据卷挂载小结 137
9.3 备份、恢复、迁移数据卷 139
9.3.1 备份数据卷 139
9.3.2 迁移、恢复数据卷 140
9.4 容器数据卷扩展 140
9.4.1 卷插件介绍 140
9.4.2 Convoy的使用 140
9.4.3 Flocker的使用 141
9.5 本章小结 142
第10章 网络管理 143
10.1 Docker网络基础 143
10.1.1 端口映射 143
10.1.2 端口暴露 145
10.1.3 容器互联 146
10.2 Docker网络模式 147
10.2.1 none模式 147
10.2.2 container模式 149
10.2.3 host模式 150
10.2.4 bridge模式 151
10.2.5 overlay模式 152
10.3 Docker网络配置 152
10.3.1 Daemon网络参数 152
10.3.2 配置DNS 153
10.3.3 network命令 154
10.4 本章小结 154
第3篇 Docker进阶实战
第11章 操作系统 156
11.1 Alpine发行版 156
11.1.1 官方镜像 156
11.1.2 运行Alpine Linux 157
11.1.3 构建基于Alpine Linux的镜像 157
11.1.4 Alpine Linux软件仓库 158
11.2 Busybox发行版 159
11.2.1 官方镜像 159
11.2.2 运行Busybox 159
11.2.3 构建基于Busybox的镜像 159
11.3 Debian/Ubuntu发行版 160
11.3.1 官方镜像 160
11.3.2 运行Debian/Ubuntu 160
11.3.3 构建基于Debian/Ubuntu的镜像 161
11.4 CentOS/Fedora发行版 162
11.4.1 官方镜像 162
11.4.2 运行CentOS/Fedora 162
11.5 CoreOS发行版 163
11.5.1 为什么使用CoreOS 163
11.5.2 用Vagrant安装CoreOS 163
11.6 RancherOS发行版 165
11.6.1 为什么使用RancherOS 165
11.6.2 在服务器安装RancherOS 166
11.6.3 基于RancherOS的Docker管理 167
11.7 本章小结 167
第12章 编排工具Compose 169
12.1 安装Docker Compose 169
12.1.1 二进制安装 169
12.1.2 使用Python pip安装 169
12.2 Compose命令基础 170
12.2.1 指定配置文件 171
12.2.2 指定项目名称 171
12.2.3 Compose环境变量 171
12.2.4 构建服务镜像的build命令 172
12.2.5 生成DAB包的bundle命令 173
12.2.6 检查配置语法的config命令 173
12.2.7 创建服务容器的create命令 174
12.2.8 清理项目的down命令 174
12.2.9 查看事件的events命令 175
12.2.10 进入服务的exec命令 176
12.2.11 杀死服务容器的kill命令 176
12.2.12 查看服务容器日志的logs命令 176
12.2.13 暂停服务容器的pause命令 177
12.2.14 查看服务容器端口状态的port命令 177
12.2.15 查看项目容器信息ps命令 177
12.2.16 拉取项目镜像的pull命令 178
12.2.17 推送项目镜像的push命令 179
12.2.18 重启服务容器的restart命令 179
12.2.19 删除项目容器的rm命令 179
12.2.20 执行一次性命令的run命令 180
12.2.21 设置服务容器数量的scale命令 182
12.2.22 启动服务容器的start命令 184
12.2.23 停止服务容器的stop命令 184
12.2.24 取消暂停的unpause命令 185
12.2.25 启动项目的up命令 185
12.3 Compose配置文件 186
12.3.1 配置文件基础 186
12.3.2 基本配置 187
12.3.3 网络配置 196
12.3.4 配置扩展 197
12.4 Compose实战 200
12.4.1 部署Django 200
12.4.2 部署Rails 202
12.4.3 部署WordPress 203
12.5 本章小结 205
第13章 Web服务器与应用 206
13.1 Apache服务器 206
13.1.1 官方镜像 206
13.1.2 运行官方镜像 208
13.1.3 基于Ubuntu构建Apache镜像 209
13.1.4 基于Alpine构建Apache镜像 210
13.1.5 第三方优质镜像 211
13.2 Nginx服务器 212
13.2.1 官方镜像介绍 212
13.2.2 运行官方镜像 212
13.2.3 构建Nginx镜像 214
13.2.4 第三方镜像推荐 216
13.3 Tomcat服务器 216
13.3.1 官方镜像介绍 217
13.3.2 运行官方镜像 217
13.3.3 构建Tomcat镜像 218
13.4 其他Web服务器 220
13.4.1 Caddy服务器 220
13.4.2 WebLogic服务器 221
13.5 本章小结 223
第14章 数据库 224
14.1 MySQL数据库 224
14.1.1 官方镜像的剖析与使用 224
14.1.2 构建自己的MySQL镜像 226
14.2 PostgreSQL数据库 228
14.2.1 官方镜像的使用 228
14.2.2 官方镜像的剖析 230
14.2.3 构建PostgreSQL镜像 232
14.2.4 数据备份与导入 234
14.3 Redis数据库 235
14.3.1 官方镜像的使用 235
14.3.2 构建自己的Redis镜像 236
14.4 MongoDB数据库 238
14.4.1 官方镜像的使用 238
14.4.2 构建自己的MongoDB镜像 239
14.5 其他 240
14.5.1 在容器中使用SQLite 240
14.5.2 构建自己的MariaDB镜像 241
14.5.3 使用Docker部署Orcale XE数据库 243
14.6 本章小结 244
第15章 编程语言 245
15.1 C/C++语言 245
15.1.1 官方镜像library/gcc 245
15.1.2 基于Alpine构建C/C++镜像 246
15.2 Golang语言 247
15.2.1 官方镜像library/golang 248
15.2.2 Beego框架 250
15.2.3 自助Git服务——Gogs 250
15.2.4 基于Alpine构建Golang镜像 252
15.3 Java语言 253
15.3.1 官方镜像library/openjdk 253
15.3.2 基于Alpine构建Java镜像 254
15.3.3 Tomcat服务器 255
15.3.4 下一代集成开发环境——Eclipse Che 256
15.4 JavaScript(Node.js)语言 258
15.4.1 官方镜像library/node 258
15.4.2 vue.js框架 260
15.4.3 Express框架 261
15.4.4 浏览器里的IDE——Cloud9-IDE 262
15.4.5 基于Alpine构建Node.js镜像 264
15.5 PHP语言 265
15.5.1 官方镜像library/php 265
15.5.2 快速安装扩展 267
15.5.3 LNMP环境组合 268
15.5.4 基于Alpine构建PHP镜像 270
15.5.5 自建私有云存储——ownCloud 271
15.5.6 Typecho博客系统 273
15.6 Python语言 275
15.6.1 官方镜像library/python 275
15.6.2 Flask框架 275
15.6.3 基于Alpine构建Python镜像 277
15.7 Swift语言 277
15.7.1 构建Swift镜像 277
15.7.2 Kitura框架 278
15.8 本章小结 280
第16章 Docker API介绍 281
16.1 认识Docker API 281
16.1.1 RESTful介绍 281
16.1.2 开启socket 282
16.1.3 使用curl 283
16.1.4 使用Postman 284
16.2 Docker Remote API介绍 286
16.2.1 容器API 286
16.2.2 镜像API 293
16.3 其他API 299
16.3.1 常用API 300
16.3.2 Trusted Registry API介绍 302
16.4 本章小结 304
第17章 私有仓库 305
17.1 Docker Registry介绍 305
17.1.1 部署Docker Registry 305
17.1.2 私有仓库的push与pull 305
17.1.3 配置Registry 306
17.1.4 添加Docker Hub Mirror功能 311
17.2 认证与前端 312
17.2.1 设置反代理 312
17.2.2 为私有仓库添加认证服务 313
17.2.3 为私有仓库添加可视化界面 315
17.3 企业级私有仓库Harbor 316
17.3.1 Harbor配置详解 316
17.3.2 配置HTTPS 318
17.3.3 使用Compose启动Harbor 320
17.4 私有仓库前端授权工具Portus 321
17.4.1 一键部署Portus 321
17.4.2 手动配置 321
17.4.3 启动Portus 322
17.5 本章小结 323
第18章 集群网络 324
18.1 Swarm集群 324
18.1.1 认识Swarm 324
18.1.2 建立跨主机网络 328
18.1.3 在跨主机网络上部署应用 328
18.1.4 Swarm集群负载 331
18.2 第三方网络管理工具 333
18.2.1 Weave介绍 333
18.2.2 Flannel介绍 335
18.2.3 Pipwork介绍 335
18.3 第三方服务发现 336
18.3.1 Etcd介绍 336
18.3.2 Consul介绍 337
18.4 第三方集群管理 337
18.4.1 Kubernetes介绍 337
18.4.2 Mesos Shipyard介绍 339
18.5 本章小结 339
第19章 Docker安全 340
19.1 Docker安全机制 340
19.1.1 Daemon安全 340
19.1.2 容器与镜像安全 341
19.2 Docker资源控制 342
19.2.1 限制CPU 342
19.2.2 限制内存 343
19.2.3 限制I/O 343
19.2.4 文件系统防护 344
19.2.5 镜像瘦身神器Docker Slim 344
19.2.6 强制访问控制工具SELinux或AppArmor 344
19.3 本章小结 345

教学资源推荐
作者: 陈家骏 郑滔 编著
作者: 凌云 谢满德 陈志贤 吴海燕 编著
作者: 宋晓宇
参考读物推荐
作者: 刘河飞 闫凯峰 编著
作者: (澳)David Reilly,Michael Reilly