全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 操作系统

Docker实践(第2版)

  • 定价: ¥99
  • ISBN:9787115541109
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:人民邮电
  • 页数:400页
  • 作者:(英)伊恩·米尔//...
  • 立即节省:
  • 2020-10-01 第2版
  • 2020-10-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    本书由浅入深地讲解了Docker的相关内容,涵盖从开发环境到DevOps流水线,再一路到生产环境的整个落地过程以及相关的实用技巧。书中介绍Docker的核心概念和架构,以及将Docker和开发环境有机、高效地结合起来的方法,包括背Docker用作轻量级虚拟机、构建容器、宿主机编排、配置管理、精简镜像等。不仅如此,本书还通过“问题-解决方案-讨论”的形式,将Docker如何融入DevOps流水线、如何在生产环境落地等一系列难题拆解成114个相关的实用技巧,为读者提供解决方案以及一些细节和技巧方面的实践经验。阅读本书,读者学到的不只是Docker,还包括持续集成、持续交付、构建和镜像管理、容器编排等相关领域的一线生产经验。本书编写时一些案例参考的Docker版本是Docker1.13。
    本书要求读者具备一定的容器管理和运维的基础知识,适合想要将Docker投入实践的相关技术人员阅读,尤其适合具有中高级DevOps和运维背景的读者阅读。

目录

第一部分  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-args实现智能的缓存清除
      技巧24使用ADD指令实现智能的缓存清除
      技巧25在容器里设置正确的时区
      技巧26语言环境管理
      技巧27image-steper遍历镜像分层
      技巧28ONBUILD指令和golang
    4.2  小结
  第5章  运行容器
    5.1  运行容器
      技巧29在Docker里运行GUI
      技巧30检查容器
      技巧31干净地“杀死”容器
      技巧32使用Docker Machine置备Docker宿主机
      技巧33带通配符的DNS
    5.2  卷——持久化问题
      技巧34Docker卷——持久化的问题
      技巧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镜像
      技巧58Go模型的最小容器
      技巧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流水线上与其他团队互动
      技巧70Docker契约:减少摩擦
    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
      技巧87swarm模式的无缝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的使用
      技巧95Docker实例上的HTTP认证
      技巧96保护Docker API
    14.4  Docker外部的安全性
      技巧97使用DockerSlim来减少容器攻击者的攻击面
      技巧98去除在构建中加入的密码
      技巧99OpenShift—— 一个应用程序平台即服务
      技巧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  内存