失效链接处理 |
docker容器实战:原理、架构与应用 PDF 下载
转载自:http://www.jb51.net/books/590586.html
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/1101617990.html
相关截图:
资料简介:
本书介绍了Docker容器技术的背景和基本原理,以及如何定制化符合用户要求的Docker Daemon,增加安全性、提高效率。.镜像提供了千差万别的服务,每一个镜像都是要满足用户的某种需求。如何制作出体积小、安全性高、可配置性强的镜像是困扰很多开发者的问题,书中详细介绍了相关解决方案。本书的最后还介绍了各种流行的开源项目,让读者了解Docker生态圈。
资料目录:
第1篇 Docker基础知识介绍第1章 云计算简介2 1.1 虚拟化技术的分类和历史3 1.1.1 硬件级虚拟化历史3 1.1.2 操作系统级虚拟化历史4 1.2 云计算服务模式4 1.3 Docker介绍5 1.3.1 Docker主要解决什么问题6 1.3.2 Docker的历史6 1.3.3 Docker是什么6 1.4 Linux快速入门7 1.4.1 选取什么发行版本7 1.4.2 使用图形界面还是命令行界面8 1.4.3 英文还是中文8 1.4.4 安装Ubuntu 14.048 1.4.5 Linux常用工具11 1.4.6 启用root 用户12 1.4.7 使用vim12 1.4.8 配置网络13 1.4.9 启用SSH Server13 1.4.10 通过客户端远程连接Linux主机14 1.4.11 免密码登录Linux主机15 1.4.12 安装软件15 1.4.13 公有云主机快速入门16 1.4.14 购买云主机17 1.4.15 连接到云主机19 1.5 习题21 第2章 Docker的安装22 2.1 在Ubuntu下安装Docker22 2.1.1 前置条件22 2.1.2 更新apt源23 2.1.3 Ubuntu 14.04特殊处理24 2.1.4 正式安装24 2.2 在CentOS下安装26 2.2.1 前置条件26 2.2.2 更新yum26 2.2.3 添加仓库26 2.2.4 正式安装26 2.3 通过Ghostcloud进行安装27 2.3.1 注册Ghostcloud账号28 2.3.2 接入新主机28 2.3.3 获取安装脚本28 2.3.4 验证Docker安装是否成功30 2.3.5 运行第一个容器30 2.4 通过官方的安装脚本安装31 2.5 在非Linux系统下安装Docker32 2.6 习题32 第3章 使用Docker33 3.1 运行hello-world33 3.2 容器和镜像35 3.2.1 什么是容器35 3.2.2 什么是镜像35 3.2.3 容器和镜像的关系36 3.3 Docker入门操作36 3.3.1 查看Docker基本信息36 3.3.2 下载第一个基础镜像37 3.3.3 运行一个含shell终端的容器38 3.3.4 查看容器运行38 3.3.5 运行长时间容器38 3.3.6 查看所有容器39 3.4 习题40 第2篇 Docker的基本使用 第4章 Docker深入解析42 4.1 Docker的架构42 4.2 Docker如何工作43 4.2.1 Docker Image工作方式43 4.2.2 Docker Registry工作方式44 4.2.3 容器工作方式44 4.2.4 底层的技术45 4.3 Docker Client和Daemon46 4.4 通过容器运行Web应用47 4.4.1 使用国内仓库48 4.4.2 拉取apache-php镜像48 4.4.3 运行镜像48 4.4.4 网页访问48 4.4.5 修改页面内容49 4.4.6 持久化容器50 4.5 镜像制作50 4.5.1 查看本机镜像50 4.5.2 获取镜像的三种方式51 4.5.3 查找DockerHub镜像51 4.5.4 查找其他仓库镜像52 4.5.5 push镜像54 4.5.6 根据Dockerfile编译镜像55 4.5.7 删除镜像56 4.6 docker run命令56 4.6.1 docker run的语法格式56 4.6.2 前后台运行57 4.6.3 容器的标识57 4.6.4 PID设置58 4.6.5 UTS(--uts)设置58 4.6.6 IPC(--ipc)设置59 4.6.7 网络设置59 4.6.8 重启策略(--restart)60 4.6.9 Clean up (--rm)61 4.6.10 CGroups控制61 4.6.11 特权模式和Capabilities61 4.6.12 日志驱动(--log-driver)62 4.6.13 覆盖image的默认参数62 4.7 习题63 第5章 容器的网络64 5.1 容器自带网络64 5.2 网络详情65 5.3 用户自定义网络67 5.3.1 桥接网络67 5.3.2 Overlay网络68 5.4 习题71 第6章 容器的数据72 6.1 数据卷72 6.1.1 创建一个数据卷72 6.1.2 映射一个外部卷73 6.2 使用数据型容器73 6.3 备份、还原和迁移数据卷73 6.4 容器和代码进行关联74 6.5 习题74 第7章 镜像仓库75 7.1 仓库相关的Docker命令75 7.1.1 登录75 7.1.2 查找76 7.1.3 拉取76 7.1.4 提交76 7.2 习题76 第3篇 Docker的高级使用 第8章 镜像和容器的存储结构78 8.1 镜像、容器和存储驱动的关系78 8.1.1 镜像和镜像层78 8.1.2 镜像存储方式80 8.1.3 一个迁移例子81 8.1.4 容器和容器层82 8.1.5 写时复制策略83 8.1.6 使用共享技术减小镜像体积83 8.1.7 使用复制技术加快容器启动时间86 8.1.8 数据卷和存储驱动90 8.2 如何选择存储驱动90 8.2.1 存储设备和存储驱动92 8.2.2 如何存储驱动92 8.3 AUFS存储驱动94 8.3.1 AUFS中的镜像94 8.3.2 AUFS中的容器读写95 8.3.3 在AUFS中删除文件95 8.3.4 如何配置AUFS96 8.3.5 镜像的存储方式96 8.3.6 容器的存储方式97 8.3.7 AUFS的性能99 8.4 Devicemapper存储驱动99 8.4.1 Devicemapper中的镜像100 8.4.2 Devicemapper中的读操作101 8.4.3 Devicemapper中的写操作102 8.4.4 如何配置Devicemapper103 8.4.5 在生产环境中配置direct-lvm模式104 8.4.6 Devicemapper的存储方式107 8.4.7 动态扩容loop-lvm模式下的thin pool108 8.4.8 动态扩容direct-lvm模式下的thin pool110 8.4.9 Devicemapper的性能110 8.5 Btrfs存储驱动111 8.5.1 Btrfs中的镜像112 8.5.2 Btrfs的存储方式114 8.5.3 Btrfs中的读写114 8.5.4 如何配置Btrfs115 8.5.5 Btrfs的性能116 8.6 ZFS存储驱动117 8.6.1 ZFS中的镜像117 8.6.2 ZFS中的读写118 8.6.3 如何配置ZFS119 8.6.4 ZFS的性能121 8.7 Overlay存储驱动122 8.7.1 Overlay中的镜像122 8.7.2 Overlay2中的镜像125 8.7.3 Overlay中的读写127 8.7.4 如何配置Overlay/Overlay2127 8.7.5 Overlay的性能128 8.8 习题129 第9章 定制Docker Daemon130 9.1 修改Docker Daemon的三种方式130 9.1.1 直接启动Docker Daemon132 9.1.2 修改Docker Daemon启动项132 9.1.3 自定义Docker Daemon配置文件135 9.2 仓库相关配置137 9.2.1 --disable-legacy-registry选项137 9.2.2 --registry-mirror选项138 9.2.3 --insecure-registry选项139 9.3 安全相关配置139 9.3.1 -p, --pidfile选项139 9.3.2 -H, --host选项139 9.3.3 --tls, --tlscacert, --tlscert, --tlskey, --tlsverify选项141 9.4 日志相关145 9.4.1 -D,--debug选项145 9.4.2 --log-level选项145 9.4.3 --log-driver和--log-opt选项146 9.5 存储相关配置148 9.5.1 -g, --graph选项148 9.5.2 --storage-driver选项148 9.5.3 --storage-opt选项149 9.6 网桥相关配置154 9.6.1 --bip选项154 9.6.2 --fixed-cidr,--fixed- cidr-v6选项154 9.6.3 --mtu选项155 9.6.4 -b, --bridge选项155 9.7 容器与外部通信156 9.7.1 --ip-forward选项156 9.7.2 --iptables选项156 9.7.3 --ip, --ipv6选项156 9.8 其他网络配置157 9.8.1 --default-gateway、--default-gateway-v6选项157 9.8.2 --dns,--dns-opt,--dns-search选项158 9.9 execdriver配置158 9.9.1 --exec-opt选项158 9.9.2 --exec-root选项159 9.10 其他配置159 9.11 习题159 第10章 如何编写Dockerfile160 10.1 本地编译镜像160 10.2 dockerignore文件162 10.3 Dockerfile格式163 10.4 Dockerfile指令详解163 10.4.1 FROM指令163 10.4.2 MAINTAINER指令164 10.4.3 RUN指令164 10.4.4 CMD指令164 10.4.5 LABEL指令165 10.4.6 EXPOSE指令166 10.4.7 ENV指令166 10.4.8 ADD指令168 10.4.9 COPY指令169 10.4.10 ENTRYPOINT指令170 10.4.11 VOLUME指令173 10.4.12 USER指令174 10.4.13 WORKDIR指令174 10.4.14 ARG指令175 10.4.15 ONBUILD指令177 10.4.16 STOPSIGNAL指令178 10.5 CMD、ENTRYPOINT和RUN的区别178 10.6 习题179 第11章 Dockerfile最佳实践181 11.1 基本原则181 11.2 Dockerfile指令最佳实践183 11.2.1 FROM指令最佳实践183 11.2.2 RUN指令最佳实践183 11.2.3 CMD指令最佳实践185 11.2.4 EXPOSE指令最佳实践186 11.2.5 ENV指令最佳实践188 11.2.6 ADD和COPY指令最佳实践189 11.2.7 ENTRYPOINT指令最佳实践191 11.2.8 VOLUME指令最佳实践194 11.2.9 UESR指令最佳实践196 11.2.10 使用gosu工具196 11.2.11 WORKDIR指令最佳实践198 11.2.12 ONBUILD指令最佳实践199 11.3 如何减小镜像体积199 11.4 一些官方镜像的Dockerfile205 11.4.1 Golang镜像205 11.4.2 Perl镜像208 11.4.3 Hy镜像209 11.4.4 Rails镜像210 11.5 习题211 第12章 使用容器提供服务212 12.1 使用容器提供数据库服务212 12.1.1 使用容器提供MySQL212 12.1.2 使用容器提供MongoDB215 12.2 如何使用容器提供Web服务217 12.2.1 使用容器提供Apache HTTP服务217 12.2.2 使用容器提供Django服务218 12.2.3 使用容器提供Gitlab服务219 12.3 如何使用容器提供编程环境220 12.3.1 使用容器提供Java环境221 12.3.2 使用容器提供Golang环境222 12.4 习题225 第13章 建立私有镜像仓库226 13.1 镜像仓库配置详解227 13.2 version选项231 13.3 log选项231 13.4 hooks选项231 13.5 storage选项232 13.5.1 filesystem选项233 13.5.2 azure选项234 13.5.3 |