Py学习  »  docker

Docker开发指南

计算机与网络安全 • 1 年前 • 176 次点击  

微信公众号:计算机与网络安全


Docker开发指南

(全文略)


Docker 容器轻量和可移植的特性尤其适用于动态和分布式的环境,它的兴起给软件开发流程带来了一场革命。本书对 Docker 进行了全面讲解,包括开发、生产以至维护的整个软件生命周期,并对其中可能出现的一些问题进行了探讨,如软件版本差异、开发环境与生产环境的差异、系统安全问题,等等。
本书大体由以下几部分组成。
第一部分首先讲解什么是容器,以及为什么应该关注它。之后将示范 Docker 的基本操作。最后会用较长篇幅来讲解 Docker 的基本概念和技术,其中包括 Docker 命令的概览。
第二部分讲解如何将 Docker 应用于软件开发的生命周期。首先讲解如何配置开发环境,然后构建一个简单的 Web 应用,这个 Web 应用的例子将用于整个第二部分。这一部分还会涵盖开发、测试、集成,以及如何部署容器,如何有效地监控和记录生产环境的日志。
第三部分的内容更为深入,其中包括在多主机集群环境中,有哪些工具及技巧能使Docker 容器既安全又可靠地运行。这部分适合已经使用 Docker,并需要了解如何扩展或解决网络和安全问题的读者。


目录

第一部分 背景与基础
第1章 何谓容器,为何需要它
1.1 容器与虚拟机的比较
1.2 Docker与容器
1.3 Docker的历史
1.4 插件与基础设施
1.5 64位Linux
第2章 安装
2.1 在Linux上安装 Docker
2.1.1 将SELinux置于宽容模式下运行
2.1.2 不使用sudo命令执行Docker
2.2 在Mac OS及Windows上安装Docker
2.3 快速确认
第3章 迈出第一步
3.1 运行第一个镜像
3.2 基本命令
3.3 通过Dockerfile创建镜像
3.4 使用寄存服务
3.5 使用Redis官方镜像
3.6 总结
第4章 Docker基本概念
4.1 Docker系统架构
4.1.1 底层技术
4.1.2 周边技术
4.1.3 Docker托管
4.2 镜像是如何生成的
4.2.1 构建环境的上下文
4.2.2 镜像层
4.2.3 缓存
4.2.4 基础镜像
4.2.5 Dockerfile指令
4.3 使容器与世界相连
4.4 容器互联
4.5 利用数据卷和数据容器管理数据
4.5.1 共享数据
4.5.2 数据容器
4.6 Docker常用命令
4.6.1 run命令
4.6.2 容器管理
4.6.3 Docker信息
4.6.4 容器信息
4.6.5 镜像管理
4.6.6 使用寄存服务器
4.7 总结
第二部分 Docker与软件生命周期
第5章 在开发中应用Docker
5.1 说声“Hello World!”
5.2 通过Compose实现自动化
5.3 总结
第6章 创建一个简单的Web应用
6.1 创建一个基本网页
6.2 利用现有镜像
6.3 实现缓存功能
6.4 微服务
6.5 总结
第7章 镜像分发
7.1 镜像及镜像库的命名方式
7.2 Docker Hub
7.3 自动构建
7.4 私有分发
7.4.1 运行自己的寄存服务
7.4.2 商业寄存服务
7.5 缩减镜像大小
7.6 镜像出处
7.7 总结
第8章 Docker持续集成与测试
8.1 为identidock添加单元测试
8.2 创建Jenkins容器
8.3 推送镜像
8.3.1 给镜像正确的标签
8.3.2 准生产及生产环境
8.3.3 镜像数量激增的问题
8.3.4 使用Docker部署Jenkins slaves
8.4 备份Jenkins数据
8.5 持续集成的托管解决方案
8.6 测试与微服务
8.7 总结
第9章 部署容器
9.1 通过Docker Machine配置资源
9.2 使用代理
9.3 执行选项
9.3.1 shell脚本
9.3.2 使用进程管理器(或用systemd控制所有进程)
9.3.3 使用配置管理工具
9.4 主机配置
9.4.1 选择操作系统
9.4.2 选择存储驱动程序
9.5 专门的托管方案
9.5.1 Triton
9.5.2 谷歌容器引擎
9.5.3 EC2容器服务
9.5.4 Giant Swarm
9.6 持久性数据和生产环境容器
9.7 分享秘密信息
9.7.1 在镜像中保存秘密信息
9.7.2 通过环境变量传递密钥
9.7.3 通过数据卷传递密钥
9.7.4 使用键值存储
9.8 网络连接
9.9 生产环境的寄存服务
9.10 持续部署 / 交付
9.11 总结
第10章 日志记录和监控
10.1 日志记录
10.1.1 Docker默认的日志记录
10.1.2 日志汇总
10.1.3 使用ELK进行日志记录
10.1.4 通过syslog实现日志管理
10.1.5 从文件抓取日志
10.2 监控和警报
10.2.1 使用Docker工具进行监测
10.2.2 cAdvisor
10.2.3 集群解决方案
10.3 商用的监听及日志记录解决方案
10.4 总结
第三部分 工具和技术
第11章 联网和服务发现
11.1 大使容器
11.2 服务发现
11.2.1 etcd
11.2.2 SkyDNS
11.2.3 Consul
11.2.4 服务注册
11.2.5 其他解决方案
11.3 联网选项
11.3.1 网桥模式
11.3.2 主机模式
11.3.3 容器模式
11.3.4 未联网模式
11.4 全新的Docker联网功能
11.5 网络解决方案
11.5.1 Overlay
11.5.2 Weave
11.5.3 Flannel
11.5.4 Calico项目
11.6 总结
第12章 编排、集群和管理
12.1 集群和编排工具
12.1.1 Swarm
12.1.2 fleet
12.1.3 Kubernetes
12.1.4 Mesos和Marathon
12.2 容器管理平台
12.2.1 Rancher
12.2.2 Clocker
12.2.3 Tutum
12.3 总结
第13章 容器安全与限制容器
13.1 需要考虑的事项
13.2 纵深防御
13.3 如何保护identidock
13.4 以主机隔离容器
13.5 进行更新
13.6 镜像出处
13.6.1 Docker摘要
13.6.2 Docker的内容信任机制
13.6.3 可复制及可信任的Dockerfile
13.7 安全建议
13.7.1 设置用户
13.7.2 限制容器联网
13.7.3 删除setuid和setgid的二进制文件
13.7.4 限制内存使用
13.7.5 限制CPU使用
13.7.6 限制重新启动
13.7.7 限制文件系统
13.7.8 限制内核能力
13.7.9 应用资源限制
13.8 运行加固内核
13.9 Linux安全模块
13.9.1 SELinux
13.9.2 AppArmor
13.10 审核
13.11 事件响应
13.12 未来特性
13.13 总结


附:Docker开发指南.pdf



- The end -

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/150991
 
176 次点击