计算机
类型
6.0
豆瓣评分
可以朗读
语音朗读
427千字
字数
2020-08-01
发行日期
展开全部
主编推荐语
Docker实践全攻略: 涵盖开发、DevOps及生产环境落地实用技巧。
内容简介
本书由浅入深地讲解了Docker的相关内容,涵盖从开发环境到DevOps流水线,再一路到生产环境的整个落地过程以及相关的实用技巧。书中介绍Docker的核心概念和架构,以及将Docker和开发环境有机、高效地结合起来的方法,包括用作轻量级的虚拟机以及构建和宿主机编排、配置管理、精简镜像等。不仅如此,本书还通过问题/解决方案/讨论的形式,将Docker如何融入DevOps流水线、如何在生产环境落地等一系列难题拆解成114个相关的实用技巧,为读者提供解决方案以及一些细节和技巧方面的实践经验。阅读本书,读者学到的不只是Docker,还包括持续集成、持续交付、构建和镜像管理、容器编排等相关领域的一线生产经验。本书编写时一些案例参考的Docker版本是Docker 1.13。 本书要求读者具备一定的容器管理和运维的基础知识,适合想要将Docker投入实践的相关技术人员阅读,尤其适合具有中高级DevOps和运维背景的读者阅读。
目录
- 版权信息
- 版权
- 版权声明
- 内容提要
- 译者简介
- 对本书第1版的赞誉
- 前言
- 致谢
- 关于本书
- 关于封面插画
- 资源与支持
- 第一部分 Docker基础
- 第1章 Docker初探
- 1.1 Docker是什么以及为什么用Docker
- 1.1.1 Docker是什么
- 1.1.2 Docker有什么好处
- 1.1.3 关键的概念
- 1.2 构建一个Docker应用程序
- 1.2.1 创建新的Docker镜像的方式
- 1.2.2 编写一个Dockerfile
- 1.2.3 构建一个Docker镜像
- 1.2.4 运行一个Docker容器
- 1.2.5 Docker分层
- 1.3 小结
- 第2章 理解Docker——深入引擎室
- 2.1 Docker的架构
- 2.2 Docker守护进程
- 技巧1 向世界开放Docker守护进程
- 技巧2 以守护进程方式运行容器
- 技巧3 将Docker移动到不同分区
- 2.3 Docker客户端
- 技巧4 使用socat监控Docker API流量
- 技巧5 在浏览器中使用Docker
- 技巧6 使用端口连接容器
- 技巧7 允许容器通信
- 技巧8 链接容器实现端口隔离
- 2.4 Docker注册中心
- 技巧9 建立一个本地Docker注册中心
- 2.5 Docker Hub
- 技巧10 查找并运行一个Docker镜像
- 2.6 小结
- 第二部分 Docker与开发
- 第3章 将Docker用作轻量级虚拟机
- 3.1 从虚拟机到容器
- 技巧11 将虚拟机转换为容器
- 技巧12 类宿主机容器
- 技巧13 将一个系统拆成微服务容器
- 技巧14 管理容器内服务的启动
- 3.2 保存和还原工作成果
- 技巧15 “保存游戏”的方式:廉价的源代码管理
- 技巧16 给Docker打标签
- 技巧17 在Docker Hub上分享镜像
- 技巧18 在构建时引用特定的镜像
- 3.3 环境即进程
- 技巧19 “保存游戏”的方式:在2048里获胜
- 3.4 小结
- 第4章 构建镜像
- 4.1 构建镜像
- 技巧20 使用ADD指令将文件注入镜像里
- 技巧21 不带缓存的重新构建
- 技巧22 清除缓存
- 技巧23 使用build-arg实现智能的缓存清除
- 技巧24 使用ADD指令实现智能的缓存清除
- 技巧25 在容器里设置正确的时区
- 技巧26 语言环境管理
- 技巧27 image-steper遍历镜像层
- 技巧28 ONBUILD指令和golang
- 4.2 小结
- 第5章 运行容器
- 5.1 运行容器
- 技巧29 在Docker里运行GUI
- 技巧30 检查容器
- 技巧31 干净地“杀死”容器
- 技巧32 使用Docker Machine置备Docker宿主机
- 技巧33 带通配符的DNS
- 5.2 卷——持久化问题
- 技巧34 Docker卷——持久化的问题
- 技巧35 通过Resilio Sync实现的分布式卷
- 技巧36 保留容器的bash历史
- 技巧37 数据容器
- 技巧38 使用SSHFS挂载远程卷
- 技巧39 通过NFS共享数据
- 技巧40 开发工具容器
- 5.3 小结
- 第6章 Docker日常
- 6.1 保持阵型
- 技巧41 运行Docker时不加sudo
- 技巧42 清理容器
- 技巧43 清理卷
- 技巧44 无须停止容器,从容器里解绑
- 技巧45 使用Portainer管理Docker守护进程
- 技巧46 生成Docker镜像的依赖图
- 技巧47 直接行动:在容器上执行命令
- 技巧48 你在容器里吗
- 6.2 小结
- 第7章 配置管理,让一切井然有序
- 7.1 配置管理和Dockerfile
- 技巧49 使用ENTRYPOINT创建可靠的定制工具
- 技巧50 在构建中指定版本来避免软件包的漂移
- 技巧51 用perl -p -i -e替换文本
- 技巧52 镜像的扁平化
- 技巧53 用Alien管理外来软件包
- 7.2 传统配置管理工具与Docker
- 技巧54 传统方式:搭配make和Docker
- 技巧55 借助Chef Solo构建镜像
- 7.3 小即是美
- 技巧56 让镜像变得更小的技巧
- 技巧57 通过BusyBox和Alpine精简Docker镜像
- 技巧58 Go模型的最小容器
- 技巧59 使用inotifywait给容器瘦身
- 技巧60 大也可以美
- 7.4 小结
- 第三部分 Docker与DevOps
- 第8章 持续集成:加快开发流水线
- 8.1 Docker Hub自动化构建
- 技巧61 使用Docker Hub工作流
- 8.2 更有效的构建
- 技巧62 使用eatmydata为I/O密集型构建提速
- 技巧63 设置一个软件包缓存用于加快构建速度
- 技巧64 容器里的无头Chrome
- 技巧65 在Docker内部运行Selenium测试
- 8.3 容器化CI过程
- 技巧66 在一个Docker容器里运行Jenkins主服务器
- 技巧67 包含一个复杂的开发环境
- 技巧68 使用Jenkins的Swarm插件扩展CI
- 技巧69 安全地升级容器化Jenkins服务器
- 8.4 小结
- 第9章 持续交付:与Docker原则完美契合
- 9.1 在CD流水线上与其他团队互动
- 技巧70 Docker契约:减少摩擦
- 9.2 推动Docker镜像的部署
- 技巧71 手动同步注册中心镜像
- 技巧72 通过受限连接交付镜像
- 技巧73 以TAR文件方式共享Docker对象
- 9.3 为不同环境配置镜像
- 技巧74 使用etcd通知容器
- 9.4 升级运行中的容器
- 技巧75 使用confd启用零停机时间切换
- 9.5 小结
- 第10章 网络模拟:无痛的现实环境测试
- 10.1 容器通信:超越手工链接
- 技巧76 一个简单的Docker Compose集群
- 技巧77 一个使用Docker Compose的SQLite服务器
- 10.2 使用Docker模拟真实世界的网络
- 技巧78 使用Comcast模拟有问题的网络
- 技巧79 使用Blockade模拟有问题的网络
- 10.3 Docker和虚拟网络
- 技巧80 创建另一个Docker虚拟网络
- 技巧81 使用Weave建立一个基底网络
- 10.4 小结
- 第四部分 从单机到云的编排
- 第11章 容器编排入门
- 11.1 简单的单台宿主机
- 技巧82 使用systemd管理宿主机上的容器
- 技巧83 编排宿主机上的容器的启动
- 11.2 手动多宿主机Docker
- 技巧84 使用Helios手动管理多宿主机Docker
- 11.3 服务发现:我们有什么
- 技巧85 使用Consul发现服务
- 技巧86 使用Registrator进行自动化服务注册
- 11.4 小结
- 第12章 使用Docker实现数据中心即操作系统
- 12.1 多宿主机Docker
- 技巧87 swarm模式的无缝Docker集群
- 技巧88 使用Kubernetes集群
- 技巧89 在pod内访问Kubernetes API
- 技巧90 使用OpenShift在本地运行AWS API
- 技巧91 在Mesos上构建框架
- 技巧92 使用Marathon细粒度管理Mesos
- 12.2 小结
- 第13章 Docker平台
- 13.1 组织选择的因素
- 13.1.1 投放到市场的时间
- 13.1.2 购买与构建
- 13.1.3 单体与零散
- 13.1.4 开源与授权
- 13.1.5 安全态度
- 13.1.6 消费者独立性
- 13.1.7 云策略
- 13.1.8 组织结构
- 13.1.9 多平台?
- 13.1.10 组织选择因素结论
- 13.2 采用Docker时需要考虑的方面
- 13.2.1 安全与控制
- 13.2.2 构建和分发镜像
- 13.2.3 运行容器
- 13.3 供应商、组织和产品
- 13.3.1 云原生计算基金会(CNCF)
- 13.3.2 Docker公司
- 13.3.3 谷歌
- 13.3.4 微软
- 13.3.5 亚马逊
- 13.3.6 Red Hat
- 13.4 小结
- 第五部分 生产环境中的Docker
- 第14章 Docker与安全
- 14.1 Docker访问权限及其意味着什么
- 你在乎吗
- 14.2 Docker中的安全手段
- 技巧93 限制能力
- 技巧94 扫描一个“坏”Docker镜像
- 14.3 保护对Docker的访问
- 技巧95 Docker实例上的HTTP认证
- 技巧96 保护Docker API
- 14.4 Docker外部的安全性
- 技巧97 使用DockerSlim来减少容器攻击者的攻击面
- 技巧98 删除在构建中加入的密码
- 技巧99 OpenShift—— 一个应用程序平台即服务
- 技巧100 使用安全选项
- 14.5 小结
- 第15章 一帆风顺:在生产环境中运行Docker
- 15.1 监控
- 技巧101 记录容器的日志到宿主机的syslog
- 技巧102 记录Docker日志的输出
- 技巧103 使用cAdvisor监控容器
- 15.2 资源控制
- 技巧104 限制容器可以运行的内核
- 技巧105 给重要的容器更多CPU
- 技巧106 限制容器的内存使用
- 15.3 Docker的系统管理员用例
- 技巧107 使用Docker运行cron作业
- 技巧108 通过“保存游戏”的方法来备份
- 15.4 小结
- 第16章 Docker生产环境实践——应对各项挑战
- 16.1 性能:不能忽略宿主机
- 技巧109 从容器访问宿主机资源
- 技巧110 禁用内存溢出杀手
- 16.2 在容器出问题时——调试Docker
- 技巧111 使用nsenter调试容器的网络
- 技巧112 无须重新配置,使用tcpflow进行实时调试
- 技巧113 调试在特定宿主机上出问题的容器
- 技巧114 从镜像中提取文件
- 16.3 小结
- 附录A 安装并使用Docker
- A.1 虚拟机的方式
- A.2 连接到外部Docker服务器的Docker客户端
- A.3 原生Docker客户端和虚拟机
- Windows上的Docker
- A.4 获得帮助
- 附录B Docker配置
- B.1 配置Docker
- B.2 重启Docker
- B.2.1 使用systemctl重启
- B.2.2 重启服务
- 附录C Vagrant
- C.1 设置
- C.2 图形用户界面
- C.3 内存
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。