设为首页 收藏本站

运维网

查看: 1011|回复: 30

[资源发布] 自己动手写Docker电子书pdf下载

[复制链接]
累计签到:76 天
连续签到:1 天
发表于 2018-7-24 13:07:42 | 显示全部楼层 |阅读模式
自己动手写Docker
目录  · · · · · ·
第1章 容器与开发语言………………………………………………………………………1
1.1 Docker ………………………………………………………………………………1
1.1.1 简介 …………………………………………………………………………1
1.1.2 容器和虚拟机比较 …………………………………………………………2
1.1.3 容器加速开发效率 …………………………………………………………3
1.1.4 利用容器合作开发 …………………………………………………………4
1.1.5 利用容器快速扩容 …………………………………………………………4
1.1.6 安装使用Docker ……………………………………………………………4
1.2 Go ……………………………………………………………………………………5
1.2.1 描述 …………………………………………………………………………5
1.2.2 安装Go ………………………………………………………………………6
1.2.3 配置GOPATH ………………………………………………………………6
1.3 小结 …………………………………………………………………………………7
第2章 基础技术………………………………………………………………………………8
2.1 Linux Namespace 介绍 ………………………………………………………………8
2.1.1 概念 …………………………………………………………………………8
2.1.2 UTS Namespace ………………………………………………………………10
2.1.3 IPC Namespace ………………………………………………………………11
2.1.4 PID Namespace ………………………………………………………………13
2.1.5 Mount Namespace ……………………………………………………………14
2.1.6 User Namespace ………………………………………………………………16
XII 自己动手写 Docker
2.1.7 Network Namespace ………………………………………………………… 18
2.2 Linux Cgroups 介绍 ………………………………………………………………… 20
2.2.1 什么是Linux Cgroups ……………………………………………………… 20
2.2.2 Docker 是如何使用Cgroups 的 …………………………………………… 24
2.2.3 用Go 语言实现通过cgroup 限制容器的资源 …………………………… 25
2.3 Union File System …………………………………………………………………… 26
2.3.1 什么是Union File System …………………………………………………… 26
2.3.2 AUFS ………………………………………………………………………… 27
2.3.3 Docker 是如何使用AUFS 的 ……………………………………………… 27
2.3.4 自己动手写AUFS…………………………………………………………… 34
2.4 小结 ………………………………………………………………………………… 37
第3 章 构造容器……………………………………………………………………………… 38
3.1 构造实现run 命令版本的容器 …………………………………………………… 38
3.1.1 Linux proc 文件系统介绍 …………………………………………………… 38
3.1.2 实现 run 命令 ……………………………………………………………… 39
3.2 增加容器资源限制 ………………………………………………………………… 45
3.2.1 定义Cgroups 的数据结构 ………………………………………………… 45
3.2.2 在启动容器时增加资源限制的配置 ……………………………………… 51
3.3 增加管道及环境变量识别 ………………………………………………………… 53
3.4 小结 ………………………………………………………………………………… 58
第4 章 构造镜像……………………………………………………………………………… 59
4.1 使用busybox 创建容器 …………………………………………………………… 59
4.1.1 busybox ……………………………………………………………………… 59
4.1.2 pivot_root …………………………………………………………………… 60
4.2 使用AUFS 包装busybox …………………………………………………………… 63
4.3 实现volume 数据卷 ………………………………………………………………… 67
4.4 实现简单镜像打包 ………………………………………………………………… 75
4.5 小结 ………………………………………………………………………………… 77
第5 章 构建容器进阶………………………………………………………………………… 78
5.1 实现容器的后台运行 ……………………………………………………………… 78
5.2 实现查看运行中容器 ……………………………………………………………… 82
5.2.1 准备数据 …………………………………………………………………… 82
5.2.2 实现mydocker ps …………………………………………………………… 87
5.3 实现查看容器日志 ………………………………………………………………… 90
5.4 实现进入容器Namespace ………………………………………………………… 93
5.4.1 setns ………………………………………………………………………… 94
5.4.2 Cgo …………………………………………………………………………… 94
5.4.3 实现命令 …………………………………………………………………… 94
5.5 实现停止容器 ……………………………………………………………………… 100
5.6 实现删除容器 ……………………………………………………………………… 104
5.7 实现通过容器制作镜像 …………………………………………………………… 105
5.8 实现容器指定环境变量运行 ……………………………………………………… 117
5.8.1 修改runCommand …………………………………………………………… 117
5.8.2 修改Run 函数 ……………………………………………………………… 117
5.8.3 修改NewParentProcess 函数 ……………………………………………… 118
5.8.4 修改mydocker exec 命令 …………………………………………………… 119
5.9 小结 ………………………………………………………………………………… 121
第6 章 容器网络……………………………………………………………………………… 122
6.1 网络虚拟化技术介绍 ……………………………………………………………… 122
6.1.1 Linux 虚拟网络设备 ………………………………………………………… 122
6.1.2 Linux 路由表 ………………………………………………………………… 124
6.1.3 Linux iptables ………………………………………………………………… 126
6.1.4 Go 语言网络库介绍 ………………………………………………………… 127
6.2 构建容器网络模型 ………………………………………………………………… 128
6.2.1 模型 ………………………………………………………………………… 128
6.2.2 调用关系 …………………………………………………………………… 130
6.3 容器地址分配 ……………………………………………………………………… 137
6.3.1 bitmap 算法介绍 …………………………………………………………… 138
6.3.2 数据结构定义 ……………………………………………………………… 138
6.3.3 地址分配的实现 …………………………………………………………… 140
6.3.4 地址释放的实现 …………………………………………………………… 142
6.3.5 测试 ………………………………………………………………………… 142
6.4 创建Bridge 网络 …………………………………………………………………… 144
6.4.1 Bridge Driver Create 实现 …………………………………………………… 144
6.4.2 Bridge Driver 初始化Linux Bridge 流程 …………………………………… 144
6.4.3 Bridge Driver Delete 实现 …………………………………………………… 148
6.4.4 测试 ………………………………………………………………………… 148
6.5 在Bridge 网络创建容器 …………………………………………………………… 149
6.5.1 挂载容器端点的流程 ……………………………………………………… 150
6.5.2 测试 ………………………………………………………………………… 156
6.6 容器跨主机网络 …………………………………………………………………… 159
6.6.1 跨主机容器网络的IPAM …………………………………………………… 160
6.6.2 跨主机容器网络通信的常见实现方式 …………………………………… 161
6.7 小结 ………………………………………………………………………………… 163
第7 章 高级实践……………………………………………………………………………… 164
7.1 使用mydocker 创建一个可访问的nginx 容器 …………………………………… 164
7.1.1 获取nginx tar 包 …………………………………………………………… 164
7.1.2 构建自己的nginx 镜像 ……………………………………………………… 165
7.1.3 运行mynginx 容器 ………………………………………………………… 167
7.2 使用mydocker 创建一个flask + redis 的计数器 ………………………………… 169
7.2.1 创建redis 容器 ……………………………………………………………… 169
7.2.2 制作flask 镜像 ……………………………………………………………… 173
7.2.3 创建myflask 容器 …………………………………………………………… 176
7.3 runC ………………………………………………………………………………… 177
7.3.1 简介 ………………………………………………………………………… 177
7.3.2 OCI 标准包(bundle) ……………………………………………………… 177
目录XV
7.3.3 config.json …………………………………………………………………… 178
7.3.4 mounts ……………………………………………………………………… 178
7.3.5 process ……………………………………………………………………… 179
7.3.6 user …………………………………………………………………………… 179
7.3.7 hostname …………………………………………………………………… 180
7.3.8 platform ……………………………………………………………………… 180
7.3.9 钩子(Hook) ……………………………………………………………… 181
7.4 runC 创建容器流程 ………………………………………………………………… 182
7.5 Docker containerd 项目介绍 ………………………………………………………… 186
7.5.1 架构 ………………………………………………………………………… 187
7.5.2 特性和路线图 ……………………………………………………………… 188
7.5.3 containerd 和Docker 之间的关系 ………………………………………… 188
7.5.4 containerd、OCI 和runC 之间的关系 ……………………………………… 188
7.5.5 containerd 和容器编排系统的关系 ………………………………………… 189
7.6 Kubernetes CRI 容器引擎 …………………………………………………………… 189
7.6.1 什么是CRI ………………………………………………………………… 189
7.6.2 为什么需要CRI …………………………………………………………… 193
7.6.3 为什么CRI 是接口且是基于容器的而不是基于Pod 的 ………………… 193
7.6.4 如何使用CRI ……………………………………………………………… 193
7.6.5 CRI 的目标 ………………………………………………………………… 194
7.6.6 已知的问题 ………………………………………………………………… 194
7.7 小结 ………………………………………………………………………………… 195


链接: https://pan.baidu.com/s/1aC8balB0Q-QZ7mTz7gHUKQ 密码:
游客,如果您要查看本帖隐藏内容请回复


运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

点击关注更多内容
累计签到:22 天
连续签到:1 天
发表于 2018-7-24 14:48:46 | 显示全部楼层
学习学习,谢谢大佬

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

尚未签到

发表于 2018-7-24 16:22:06 | 显示全部楼层
很好,很强大!

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
发表于 2018-7-25 09:09:12 | 显示全部楼层
感謝大大的分享喔

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

累计签到:30 天
连续签到:5 天
发表于 2018-7-25 14:16:54 | 显示全部楼层
Good Good Study,Day Day UP !

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

尚未签到

发表于 2018-7-30 18:28:28 | 显示全部楼层
这本书好用吗

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

尚未签到

发表于 2018-8-1 09:49:40 | 显示全部楼层
很不错的一本书,谢谢分享

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
发表于 2018-8-10 13:27:36 | 显示全部楼层
感谢感谢,楼主辛苦

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

尚未签到

发表于 2018-8-17 10:41:54 | 显示全部楼层
谢谢  正好想学下docker

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

累计签到:203 天
连续签到:1 天
发表于 2018-8-17 14:03:05 | 显示全部楼层
需要金币吗

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

尚未签到

发表于 2018-8-25 09:03:58 | 显示全部楼层
很不错的说

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

尚未签到

发表于 2018-8-27 16:26:26 | 显示全部楼层
找了好久呀

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

尚未签到

发表于 2018-9-3 22:59:33 | 显示全部楼层
很好很强大,找了好久了

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

累计签到:48 天
连续签到:1 天
发表于 2018-9-4 10:48:34 | 显示全部楼层
下载学习下!!!

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则  允许回帖邮件提醒楼主

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服 E-mail:kefu@yunvn.com

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright © 2012-2018

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up !


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


独家合作伙伴: 青云cloud

快速回复 返回顶部 返回列表