本书分两部分系统介绍Docker与Kubernetes的运维技术。
Docker部分包括:全面认识Docker、初步体验Docker、Docker基本管理、Docker仓库、数据管理、Dockerfile、日志、Compose、Swarm、Portainer、Docker 实战应用。
Kubernetes部分包括:Kubernetes初步入门、安装Kubernetes、Kubernetes命令行工具、运行应用、通过服务访问应用、存储管理、软件包管理、网络管理、Kubernetes Dashboard、Kubernetes安全、Kubernetes集群管理。
第1章 全面认识Docker 1
1.1 容器技术 1
1.1.1 什么是容器 2
1.1.2 容器与虚拟机之间的区别 3
1.1.3 容器究竟解决了什么问题 4
1.1.4 容器的优点 5
1.1.5 容器的缺点 5
1.1.6 容器的分类 6
1.2 Docker技术 7
1.2.1 什么是Docker 7
1.2.2 Docker的由来 8
1.2.3 Docker究竟是什么 8
1.3 Docker的架构与组成 9
1.3.1 Docker的架构 9
1.3.2 Docker中应用系统的存在
形式 11
1.4 为什么使用Docker 11
1.4.1 Docker的应用场景 11
1.4.2 Docker可以解决哪些问题 12
1.4.3 Docker的应用成本 12
1.5 Docker和Podman 12
1.5.1 Podman 13
1.5.2 Docker和Podman的比较 13
第2章 初步体验Docker 15
2.1 在Windows中安装Docker 15
2.1.1 通过Boot2Docker
体验Docker 15
2.1.2 通过Docker Desktop
体验Docker 21
2.1.3 搭建第一个Docker应用:
Hello world 28
2.2 在Ubuntu中安装Docker 30
2.2.1 通过Ubuntu仓库
安装Docker 30
2.2.2 通过Docker仓库
安装Docker 32
2.2.3 通过软件包安装Docker 33
2.2.4 测试安装的结果 33
第3章 Docker基本管理 35
3.1 镜像管理 35
3.1.1 查找镜像 35
3.1.2 下载镜像 36
3.1.3 列出本地镜像 37
3.1.4 删除镜像 37
3.1.5 查看镜像 37
3.1.6 构建镜像 40
3.1.7 镜像标签管理 42
3.2 容器管理 43
3.2.1 创建容器 43
3.2.2 查看容器 45
3.2.3 启动容器 46
3.2.4 停止容器 46
3.2.5 删除容器 47
3.3 网络管理 47
3.3.1 Docker网络原理 47
3.3.2 网络模式 49
3.3.3 Docker容器的互联 50
3.3.4 容器与外部网络的互联 52
第4章 Docker的仓库 54
4.1 公共镜像市场 54
4.1.1 什么是Docker Hub 54
4.1.2 Docker Hub的特点 54
4.1.3 使用Docker Hub 55
4.2 第三方镜像市场 57
4.2.1 公有镜像中心(加速器) 57
4.2.2 私有镜像中心 58
4.3 私有仓库 59
4.3.1 创建私有仓库 59
4.3.2 使用私有仓库 60
第5章 Docker数据管理 63
5.1 数据卷 63
5.1.1 什么是数据卷 63
5.1.2 创建数据卷 64
5.1.3 不同类型的数据卷 64
5.2 数据卷容器 67
5.2.1 新建数据卷容器 67
5.2.2 共享数据卷容器 67
5.3 数据迁移 67
5.3.1 备份 68
5.3.2 恢复 68
第6章 Dockerfile 69
6.1 文件结构说明 69
6.1.1 Dockfile的简单格式 69
6.1.2 提示解释器 70
6.1.3 环境变量替换 71
6.2 指令简介 71
6.2.1 FROM 72
6.2.2 ARG 72
6.2.3 RUN 73
6.2.4 CMD 77
6.2.5 LABEL 78
6.2.6 EXPOSE 79
6.2.7 ENV 79
6.2.8 ADD 80
6.2.9 COPY 81
6.2.10 ENTRYPOINT 81
6.2.11 VOLUME 86
6.2.12 USER 87
6.2.13 WORKDIR 87
6.2.14 ONBUILD 88
6.2.15 STOPSIGNAL 89
6.2.16 HEALTHCHECK 89
6.2.17 SHELL 90
6.3 创建镜像 92
6.3.1 命令详解 92
6.3.2 .dockerignore文件 92
6.3.3 最佳实践 93
第7章 Docker日志 98
7.1 docker logs 98
7.2 logging driver 99
7.3 ELK 100
7.3.1 概述 101
7.3.2 安装ELK 101
7.3.3 Filebeat配置 103
7.3.4 Kibana配置 105
第8章 Docker Compose 107
8.1 简介 107
8.1.1 主要功能 108
8.1.2 常见用例 108
8.2 安装Compose 109
8.2.1 Docker Desktop 109
8.2.2 安装Compose Plugin 109
8.2.3 独立安装Compose 110
8.3 使用Compose部署 110
8.3.1 先决条件 111
8.3.2 步骤1:定义应用程序
依赖项 111
8.3.3 步骤2:创建Dockerfile 112
8.3.4 步骤3:在撰写文件中定义
服务 112
8.3.5 步骤4:使用Compose生成并
运行应用 113
8.3.6 步骤5:编辑Compose文件以
添加Volume 114
8.3.7 步骤6:使用Compose重新
生成并运行应用 114
8.3.8 步骤7:更新应用程序 115
8.3.9 步骤8:尝试使用其他命令 115
8.4 使用Compose命令 116
第9章 Docker Swarm 118
9.1 基本概念 118
9.1.1 简介 118
9.1.2 关键概念 120
9.2 使用Swarm 121
9.2.1 创建Swarm 121
9.2.2 添加Swarm节点 122
9.3 使用服务命令 123
9.3.1 部署一个服务 123
9.3.2 查看服务 124
9.3.3 扩展服务 124
9.3.4 删除服务 125
9.3.5 应用滚动更新 126
第10章 Docker Portainer 129
10.1 简介 129
10.2 安装 130
10.3 常规操作 132
10.3.1 App模板 132
10.3.2 镜像操作 133
10.3.3 容器操作 134
10.3.4 添加Docker镜像仓库 136
第11章 Docker实战应用 138
11.1 OS Docker 138
11.1.1 BusyBox 138
11.1.2 Alphine 139
11.1.3 Ubuntu 139
11.1.4 CentOS 139
11.2 Web服务应用 140
11.2.1 Apache 140
11.2.2 Nginx 140
11.3 数据库应用 141
11.3.1 MySQL 141
11.3.2 Redis 142
11.3.3 MongoDB 142
11.4 编程应用 143
11.4.1 Java 143
11.4.2 Python 143