展开全部

主编推荐语

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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。