Docker从入门到实战
2020-03-27 18:29:18 0 举报
AI智能生成
Docker从入门到实战
作者其他创作
大纲/内容
本书作者
第1篇 容器技术与Docker概念
1 容器技术
1.1 什么是容器
1.1.1 关于虚拟化
1.1.2 容器的定义
1.1.3 为什么使用容器
1.2 容器技术的前世今生
1.2.1 容器技术的起源
1.2.2 容器技术的发展
1.3 容器的原理
1.3.1 从namespace说起
1.3.2 认识Cgroups
1.3.3 容器的创建
1.4 容器云
1.5 容器与Docker
1.6 本章小结
2 Docker简介
2.1 什么是Docker
2.1.1 Docker的历史
2.1.2 Docker的现状
2.1.3 Docker的未来
2.2 Docker的功能及优缺点
2.2.1 Docker在解决什么
2.2.2 为什么选择Docker
2.2.3 Docker的缺点
2.3 Docker和虚拟机
2.3.1 Docker与虚拟机的区别
2.3.2 Docker与虚拟机的优缺点
2.4 Docker与runC
2.4.1 libcontainer与runC
2.4.2 runC的使用
2.4.3 runC原理
2.5 Docker基本架构
2.5.1 Docker Client介绍
2.5.2 Docker daemon介绍
2.5.3 Docker镜像
2.5.4 Docker容器
2.5.5 Docker仓库
2.6 本章小结
3 安装Docker
3.1 Linux系统
3.1.1 一键安装脚本
3.1.2 Debian发行版
3.1.3 Ubuntu发行版
3.1.4 Centos/Fedora发行版
3.1.5 Arch Linux发行版
3.1.6 Suse/openSUSE发行版
3.2 Windows与Mac OS系统
3.2.1 在Windows上安装原生Docker
3.2.2 在Mac OS上安装原生Docker
3.3 二进制安装
3.3.1 获取Linux二进制包
3.3.2 获取Mac OS X二进制包
3.3.3 获取Windows的二进制包
3.3.4 树莓派安装Docker
3.4 本章小结
第2篇 Docker基础知识
4 Docker基础
4.1 Docker基本操作
4.1.1 依附容器的docker attach命令
4.1.2 构建镜像的docker build命令
4.1.3 提交容器的docker commit命令
4.1.4 复制文件到宿主机的docker cp命令
4.1.5 创建容器的docker create命令
4.1.6 查看容器变化的docker diff命令
4.1.7 查看事件的docker events命令
4.1.8 进入容器的docker exec命令
4.1.9 导出容器的docker export命令
4.1.10 查看镜像历史的docker history命令
4.1.11 查看本地镜像的docker images命令
4.1.12 导入容器的docker import命令
4.1.13 查看Docker信息的docker info命令
4.1.14 查看各项详细信息的docker inspect命令
4.1.15 杀死容器的docker kill命令
4.1.16 导入镜像的docker load命令
4.1.17 登录仓库的docker login命令
4.1.18 登出仓库的docker logout命令
4.1.19 查看容器日志的docker logs命令
4.1.20 管理网络的docker network命令
4.1.21 管理节点的docker node命令
4.1.22 暂停容器的docker pause命令
4.1.23 查看容器端口的docker port命令
4.1.24 查看本地容器信息的docker ps命令
4.1.25 拉取镜像的docker pull命令
4.1.26 推送镜像的docker push命令
4.1.27 重命名容器的docker rename命令
4.1.28 重启容器的docker restart命令
4.1.29 删除容器的docker rm命令
4.1.30 删除镜像的docker rmi命令
4.1.31 运行容器的docker run命令
4.1.32 导出镜像的docker save命令
4.1.33 搜索镜像的docker search命令
4.1.34 管理服务的docker service命令
4.1.35 启动容器的docker start命令
4.1.36 查看容器状态的docker stats命令
4.1.37 停止容器的docker stop命令
4.1.38 管理集群的docker swarm命令
4.1.39 设置镜像标签的docker tag命令
4.1.40 查看容器进程的docker top命令
4.1.41 恢复暂停容器的docker unpause命令
4.1.42 更新容器的docker update命令
4.1.43 查看Docker版本的docker version命令
4.1.44 管理数据卷的docker volume命令
4.1.45 设置等待的docker wait命令
4.2 启动第一个Docker容器
4.3 构建第一个Docker镜像
4.4 本章小结
5 Docker镜像
5.1 认识镜像
5.1.1 使用docker pull拉取镜像
5.1.2 搜索镜像
5.1.3 查看镜像信息
5.2 创建镜像
5.2.1 剖析Hello World镜像
5.2.2 从Dockerfile构建镜像
5.2.3 自动构建镜像
5.2.4 提交容器为镜像
5.3 导出和导入镜像
5.3.1 导出镜像到本地文件系统
5.3.2 从本地文件系统导入镜像
5.4 发布镜像
5.4.1 发布镜像到Docker Hub
5.4.2 给镜像打上标签
5.4.3 发布到第三方镜像仓库
5.5 删除镜像
5.5.1 删除本地镜像
5.5.2 删除仓库镜像
5.6 Docker镜像扩展
5.6.1 Docker镜像里有什么
5.6.2 Docker镜像的存储方式
5.6.3 联合挂载
5.6.4 Git式管理
5.7 本章小结
6 Dockerfile文件
6.1 Dockerfile基本结构
6.1.1 Dockerfile基础
6.1.2 Dockerfile的书写规则
6.1.3 基础镜像信息和维护者信息
6.2 Dockerfile指令
6.2.1 指定基础镜像的FROM指令
6.2.2 设置维护者信息的MAINTAINER指令
6.2.3 执行构建命令的RUN指令
6.2.4 设置镜像环境变量的ENV指令
6.2.5 复制文件的COPY指令
6.2.6 添加文件的ADD指令
6.2.7 指定端口暴露的EXPOSE指令
6.2.8 设置镜像启动命令的CMD指令
6.2.9 设置接入点的ENTRYPOINT指令
6.2.10 设置数据卷的VOLUME指令
6.2.11 设置构建用户的USER指令
6.2.12 设置工作目录的WORKDIR指令
6.2.13 设置二次构建指令的ONBUILD指令
6.2.14 设置元数据的LABEL指令
6.2.15 设置构建变量的ARG指令
6.2.16 设置停止信号的STOPSIGNAL指令
6.2.17 检查镜像状态的HEALTHCHECK指令
6.2.18 设置命令执行环境的SHELL指令
6.3 镜像构建实战
6.3.1 收集应用信息
6.3.2 编写Dockerfile
6.3.3 设置自动构建
6.4 本章小结
7 Docker仓库
7.1 官方仓库Docker Hub
7.1.1 Docker Hub登录与使用
7.1.2 Docker Hub与Docker Cloud
7.2 国内镜像仓库
7.2.1 中国科学技术大学镜像仓库
7.2.2 DaoCloud镜像加速器
7.2.3 阿里云镜像加速器
7.2.4 灵雀云镜像加速器
7.2.5 时速云镜像加速器
7.2.6 网易蜂巢
7.2.7 自建镜像加速器
7.3 私有仓库
7.3.1 搭建私有仓库
7.3.2 私有仓库的使用
7.3.3 私有仓库安全性
7.4 Registry原理
7.4.1 Registry组成
7.4.2 Registry工作流程
7.5 本章小结
8 Docker容器
8.1 容器基本操作
8.1.1 创建容器
8.1.2 启动容器
8.1.3 后台运行容器
8.1.4 自动重启容器
8.1.5 停止与杀死容器
8.1.6 删除容器
8.1.7 查看容器信息
8.2 进入容器内部
8.2.1 使用attach进入容器
8.2.2 使用exec进入容器
8.2.3 使用nsenter进入容器
8.3 导出和导入容器
8.3.1 导出容器
8.3.2 导入容器
8.4 容器结构
8.4.1 容器格式是什么
8.4.2 容器内部结构
8.5 本章小结
9 数据卷
9.1 数据卷是什么
9.1.1 数据卷介绍
9.1.2 数据卷容器介绍
9.2 为容器挂载数据卷
9.2.1 挂载数据卷
9.2.2 挂载数据卷容器
9.2.3 数据卷挂载小结
9.3 备份、恢复、迁移数据卷
9.3.1 备份数据卷
9.3.2 迁移、恢复数据卷
9.4 容器数据卷扩展
9.4.1 卷插件介绍
9.4.2 Convoy的使用
9.4.3 Flocker的使用
9.5 本章小结
10 网络管理
10.1 Docker网络基础
10.1.1 端口映射
10.1.2 端口暴露
10.1.3 容器互联
10.2 Docker网络模式
10.2.1 none模式
10.2.2 container模式
10.2.3 host模式
10.2.4 bridge模式
10.2.5 overlay模式
10.3 Docker网络配置
10.3.1 Daemon网络参数
10.3.2 配置DNS
10.3.3 network命令
10.4 本章小结
第3篇 Docker进阶实战
11 操作系统
11.1 Alpine发行版
11.1.1 官方镜像
11.1.2 运行Alpine Linux
11.1.3 构建基于Alpine Linux的镜像
11.1.4 Alpine Linux软件仓库
11.2 Busybox发行版
11.2.1 官方镜像
11.2.2 运行Busybox
11.2.3 构建基于Busybox的镜像
11.3 Debian/Ubuntu发行版
11.3.1 官方镜像
11.3.2 运行Debian/Ubuntu
11.3.3 构建基于Debian/Ubuntu的镜像
11.4 CentOS/Fedora发行版
11.4.1 官方镜像
11.4.2 运行CentOS/Fedora
11.5 CoreOS发行版
11.5.1 为什么使用CoreOS
11.5.2 用Vagrant安装CoreOS
11.6 RancherOS发行版
11.6.1 为什么使用RancherOS
11.6.2 在服务器安装RancherOS
11.6.3 基于RancherOS的Docker管理
11.7 本章小结
12 编排工具Compose
12.1 安装Docker Compose
12.1.1 二进制安装
12.1.2 使用Python pip安装
12.2 Compose命令基础
12.2.1 指定配置文件
12.2.2 指定项目名称
12.2.3 Compose环境变量
12.2.4 构建服务镜像的build命令
12.2.5 生成DAB包的bundle命令
12.2.6 检查配置语法的config命令
12.2.7 创建服务容器的create命令
12.2.8 清理项目的down命令
12.2.9 查看事件的events命令
12.2.10 进入服务的exec命令
12.2.11 杀死服务容器的kill命令
12.2.12 查看服务容器日志的logs命令
12.2.13 暂停服务容器的pause命令
12.2.14 查看服务容器端口状态的port命令
12.2.15 查看项目容器信息ps命令
12.2.16 拉取项目镜像的pull命令
12.2.17 推送项目镜像的push命令
12.2.18 重启服务容器的restart命令
12.2.19 删除项目容器的rm命令
12.2.20 执行一次性命令的run命令
12.2.21 设置服务容器数量的scale命令
12.2.22 启动服务容器的start命令
12.2.23 停止服务容器的stop命令
12.2.24 取消暂停的unpause命令
12.2.25 启动项目的up命令
12.3 Compose配置文件
12.3.1 配置文件基础
12.3.2 基本配置
12.3.3 网络配置
12.3.4 配置扩展
12.4 Compose实战
12.4.1 部署Django
12.4.2 部署Rails
12.4.3 部署WordPress
12.5 本章小结
13 Web服务器与应用
13.1 Apache服务器
13.1.1 官方镜像
13.1.2 运行官方镜像
13.1.3 基于Ubuntu构建Apache镜像
13.1.4 基于Alpine构建Apache镜像
13.1.5 第三方优质镜像
13.2 Nginx服务器
13.2.1 官方镜像介绍
13.2.2 运行官方镜像
13.2.3 构建Nginx镜像
13.2.4 第三方镜像推荐
13.3 Tomcat服务器
13.3.1 官方镜像介绍
13.3.2 运行官方镜像
13.3.3 构建Tomcat镜像
13.4 其他Web服务器
13.4.1 Caddy服务器
13.4.2 WebLogic服务器
13.5 本章小结
14 数据库
14.1 MySQL数据库
14.1.1 官方镜像的剖析与使用
14.1.2 构建自己的MySQL镜像
14.2 PostgreSQL数据库
14.2.1 官方镜像的使用
14.2.2 官方镜像的剖析
14.2.3 构建PostgreSQL镜像
14.2.4 数据备份与导入
14.3 Redis数据库
14.3.1 官方镜像的使用
14.3.2 构建自己的Redis镜像
14.4 MongoDB数据库
14.4.1 官方镜像的使用
14.4.2 构建自己的MongoDB镜像
14.5 其他
14.5.1 在容器中使用SQLite
14.5.2 构建自己的MariaDB镜像
14.5.3 使用Docker部署Orcale XE数据库
14.6 本章小结
15 编程语言
15.1 C/C++语言
15.1.1 官方镜像library/gcc
15.1.2 基于Alpine构建C/C++镜像
15.2 Golang语言
15.2.1 官方镜像library/golang
15.2.2 Beego框架
15.2.3 自助Git服务——Gogs
15.2.4 基于Alpine构建Golang镜像
15.3 Java语言
15.3.1 官方镜像library/openjdk
15.3.2 基于Alpine构建Java镜像
15.3.3 Tomcat服务器
15.3.4 下一代集成开发环境——Eclipse Che
15.4 JavaScript(Node.js)语言
15.4.1 官方镜像library/node
15.4.2 vue.js框架
15.4.3 Express框架
15.4.4 浏览器里的IDE——Cloud9-IDE
15.4.5 基于Alpine构建Node.js镜像
15.5 PHP语言
15.5.1 官方镜像library/php
15.5.2 快速安装扩展
15.5.3 LNMP环境组合
15.5.4 基于Alpine构建PHP镜像
15.5.5 自建私有云存储——ownCloud
15.5.6 Typecho博客系统
15.6 Python语言
15.6.1 官方镜像library/python
15.6.2 Flask框架
15.6.3 基于Alpine构建Python镜像
15.7 Swift语言
15.7.1 构建Swift镜像
15.7.2 Kitura框架
15.8 本章小结
16 Docker API介绍
16.1 认识Docker API
16.1.1 RESTful介绍
16.1.2 开启socket
16.1.3 使用curl
16.1.4 使用Postman
16.2 Docker Remote API介绍
16.2.1 容器API
16.2.2 镜像API
16.3 其他API
16.3.1 常用API
16.3.2 Trusted Registry API介绍
16.4 本章小结
17 私有仓库
17.1 Docker Registry介绍
17.1.1 部署Docker Registry
17.1.2 私有仓库的push与pull
17.1.3 配置Registry
17.1.4 添加Docker Hub Mirror功能
17.2 认证与前端
17.2.1 设置反代理
17.2.2 为私有仓库添加认证服务
17.2.3 为私有仓库添加可视化界面
17.3 企业级私有仓库Harbor
17.3.1 Harbor配置详解
17.3.2 配置HTTPS
17.3.3 使用Compose启动Harbor
17.4 私有仓库前端授权工具Portus
17.4.1 一键部署Portus
17.4.2 手动配置
17.4.3 启动Portus
17.5 本章小结
18 集群网络
18.1 Swarm集群
18.1.1 认识Swarm
18.1.2 建立跨主机网络
18.1.3 在跨主机网络上部署应用
18.1.4 Swarm集群负载
18.2 第三方网络管理工具
18.2.1 Weave介绍
18.2.2 Flannel介绍
18.2.3 Pipwork介绍
18.3 第三方服务发现
18.3.1 Etcd介绍
18.3.2 Consul介绍
18.4 第三方集群管理
18.4.1 Kubernetes介绍
18.4.2 Mesos Shipyard介绍
18.5 本章小结
19 Docker安全
19.1 Docker安全机制
19.1.1 Daemon安全
19.1.2 容器与镜像安全
19.2 Docker资源控制
19.2.1 限制CPU
19.2.2 限制内存
19.2.3 限制I/O
19.2.4 文件系统防护
19.2.5 镜像瘦身神器Docker Slim
19.2.6 强制访问控制工具SELinux或AppArmor
19.3 本章小结
为什么学习Docker
本书特色
本书内容体系
本书读者对象
本书配套资源及获取方式
0 条评论
下一页