16回答

0收藏

自己动手写Docker PDF 电子书

电子书 电子书 1721 人阅读 | 16 人回复 | 2023-09-01

Java电子书:自己动手写Docker 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
7 U/ k/ X( {2 }+ n5 i* w4 ^
2 b* T: P1 G+ ]/ C

5 l- q6 w$ b3 K& s- ?
编号:mudaima-P0260【Java吧 java8.com】- `8 k7 W; t+ i* w% i- B

; }! o& E5 s- A$ }$ M& k* Y4 X+ ~% X* w

/ K8 M4 ^+ J1 S. p/ C# `9 [Java电子书目录:第1章 容器与开发语言………………………………………………………………………11 h" ]  V. B3 z
1.1 Docker ………………………………………………………………………………1
# M  K: _" z& p; C1 J1.1.1 简介 …………………………………………………………………………1
5 }! k% j5 `  q7 T1.1.2 容器和虚拟机比较 …………………………………………………………2
/ B( R' E! m; }& s1.1.3 容器加速开发效率 …………………………………………………………3$ Y* f7 }* ^: G% `7 L
1.1.4 利用容器合作开发 …………………………………………………………4
; S# x* T8 l1 V6 Z; ^1.1.5 利用容器快速扩容 …………………………………………………………4% S! ~) s. G+ w
1.1.6 安装使用Docker ……………………………………………………………4
' ]8 A( w  ~0 E0 _  a( b5 S, g; i1.2 Go ……………………………………………………………………………………5; O( x! r9 h7 j/ w
1.2.1 描述 …………………………………………………………………………5$ ?) ~" k4 _" q7 z- J
1.2.2 安装Go ………………………………………………………………………62 q8 T7 X! j9 F6 P" C- _& R; K/ v
1.2.3 配置GOPATH ………………………………………………………………6
+ i% ~, x9 U0 c( C, I8 U1.3 小结 …………………………………………………………………………………74 \% q& S6 D5 s
第2章 基础技术………………………………………………………………………………8% n  y( B4 R& y! v1 W! c
2.1 Linux Namespace 介绍 ………………………………………………………………85 G/ k# b) p5 B( y0 o5 [% J* ~
2.1.1 概念 …………………………………………………………………………8# Q( B# y( M) A! ?1 R* T3 Y
2.1.2 UTS Namespace ………………………………………………………………10* C# |4 N2 O. O
2.1.3 IPC Namespace ………………………………………………………………11
/ z+ O; [5 |* F2.1.4 PID Namespace ………………………………………………………………13
4 k" ~! Z4 t9 o6 C6 c; M2 A2.1.5 Mount Namespace ……………………………………………………………14( R$ n& @  `; W6 ^7 E2 G
2.1.6 User Namespace ………………………………………………………………16
0 C6 |" V- B4 ^& h" y9 x2.1.7 Network Namespace ………………………………………………………… 18
+ z, M: k. S: E7 R3 v9 ^3 l2.2 Linux Cgroups 介绍 ………………………………………………………………… 20+ q4 E8 R( O" e- `) E
2.2.1 什么是Linux Cgroups ……………………………………………………… 20
8 L4 a/ m% [$ w1 @* x4 P& e2.2.2 Docker 是如何使用Cgroups 的 …………………………………………… 241 U/ J2 }/ Q; T* ?, \
2.2.3 用Go 语言实现通过cgroup 限制容器的资源 …………………………… 25
; h  u  C  m% K0 v  I) L2.3 Union File System …………………………………………………………………… 26
% f) J+ t7 G& _. G/ [2.3.1 什么是Union File System …………………………………………………… 26# _; F$ q" J, x: E  e
2.3.2 AUFS ………………………………………………………………………… 27
+ U+ E: t  ^- B* m5 m0 ?2.3.3 Docker 是如何使用AUFS 的 ……………………………………………… 27
! Q- K7 i. E# Q' P2.3.4 自己动手写AUFS…………………………………………………………… 34: t7 o! q; g: k& F! X9 T
2.4 小结 ………………………………………………………………………………… 37) }( V" e- s4 S5 w
第3 章 构造容器……………………………………………………………………………… 389 B. f% [, g7 X: e% X
3.1 构造实现run 命令版本的容器 …………………………………………………… 38
# J' e+ D( H$ s# \& a' L" ]1 Y3.1.1 Linux proc 文件系统介绍 …………………………………………………… 384 f3 ~6 l; K' k+ u) i" V' U
3.1.2 实现 run 命令 ……………………………………………………………… 390 s3 p7 h( c7 z8 F
3.2 增加容器资源限制 ………………………………………………………………… 45$ x/ G& q6 I. p( W
3.2.1 定义Cgroups 的数据结构 ………………………………………………… 45
  f. E2 I: a# ~: I  w- {3.2.2 在启动容器时增加资源限制的配置 ……………………………………… 51
  j* S$ @% |3 N3.3 增加管道及环境变量识别 ………………………………………………………… 53- u" V8 i" X* [! o+ Q: {1 o& u
3.4 小结 ………………………………………………………………………………… 58
- f! T: s1 ]; \第4 章 构造镜像……………………………………………………………………………… 59
" \4 }( B( a0 V+ M4.1 使用busybox 创建容器 …………………………………………………………… 59
1 h! T- c. ?% M; ^  r4.1.1 busybox ……………………………………………………………………… 59/ y, S# K6 }6 t+ K8 f: s4 A2 t
4.1.2 pivot_root …………………………………………………………………… 608 c; F5 i& j! @' p' D  M4 ^
4.2 使用AUFS 包装busybox …………………………………………………………… 635 B' r' T8 f/ Y: a( H3 S% v
4.3 实现volume 数据卷 ………………………………………………………………… 67
# J( Y, [1 U; Q& _8 i4.4 实现简单镜像打包 ………………………………………………………………… 75
) c" t5 e% P. v/ A$ n% k$ w% W4.5 小结 ………………………………………………………………………………… 77
- C. W! T" w' u) o$ A第5 章 构建容器进阶………………………………………………………………………… 785 v0 N7 m: k4 e& p7 Z) c; t, N% H( z
5.1 实现容器的后台运行 ……………………………………………………………… 78
0 {" X- w2 @" T% n' S. Z5.2 实现查看运行中容器 ……………………………………………………………… 82
4 X* q  L6 p; _7 ~5.2.1 准备数据 …………………………………………………………………… 826 t0 @2 {7 \- Y& n
5.2.2 实现mydocker ps …………………………………………………………… 874 i- g: n. N5 V0 Z+ y0 v% }. v
5.3 实现查看容器日志 ………………………………………………………………… 90; a  X0 v0 `4 d! ]
5.4 实现进入容器Namespace ………………………………………………………… 93/ N6 E: e; k  |' g/ k  r
5.4.1 setns ………………………………………………………………………… 947 W2 i2 W' C. x4 V" `6 r
5.4.2 Cgo …………………………………………………………………………… 94
% V0 K4 N6 e2 q! d- g/ R- G5.4.3 实现命令 …………………………………………………………………… 94' s' c- r/ Q; s4 J* H( h2 a" l
5.5 实现停止容器 ……………………………………………………………………… 100" n$ }4 \+ q) h% y) U" J% ?& G( s
5.6 实现删除容器 ……………………………………………………………………… 104* D" u/ t% U$ r  ?" T# ]
5.7 实现通过容器制作镜像 …………………………………………………………… 1059 C/ v5 o- m( {
5.8 实现容器指定环境变量运行 ……………………………………………………… 117% `) T% S6 O5 |# K4 o! [7 b9 m$ D" V) ^
5.8.1 修改runCommand …………………………………………………………… 117
  W  H$ ~% u" R- Y5.8.2 修改Run 函数 ……………………………………………………………… 117
! A; c7 l5 E3 s, ^5.8.3 修改NewParentProcess 函数 ……………………………………………… 118
# A$ x) `; S" c7 P3 j2 e5.8.4 修改mydocker exec 命令 …………………………………………………… 1192 e- P* _* L# g- m/ e
5.9 小结 ………………………………………………………………………………… 121
* R1 z5 X+ u- ~第6 章 容器网络……………………………………………………………………………… 122
' V) m" i  Z0 p7 d+ D; n6.1 网络虚拟化技术介绍 ……………………………………………………………… 122
  g  p5 l! ?$ `: N, a) I6.1.1 Linux 虚拟网络设备 ………………………………………………………… 122! G5 b' ^* u5 U8 Q0 X/ l
6.1.2 Linux 路由表 ………………………………………………………………… 124
# v  k$ }3 B( i/ Q' C6.1.3 Linux iptables ………………………………………………………………… 126
* K+ o! x9 i! q7 |/ V, ~6.1.4 Go 语言网络库介绍 ………………………………………………………… 127
/ c' j' Y0 z6 g! t2 ]4 T6.2 构建容器网络模型 ………………………………………………………………… 1287 N( [. n. |: I; V0 ?7 T1 c
6.2.1 模型 ………………………………………………………………………… 128
. T! w. j0 T) y8 x4 F6.2.2 调用关系 …………………………………………………………………… 1300 P0 N& s& E7 l, ]2 r2 w! J+ N
6.3 容器地址分配 ……………………………………………………………………… 137/ U+ a; F6 f  j( F9 u
6.3.1 bitmap 算法介绍 …………………………………………………………… 1387 z5 \4 F/ R* j/ y/ Y) G
6.3.2 数据结构定义 ……………………………………………………………… 138
+ E* _7 Y  q7 o7 S* v3 h( @4 K1 ^6.3.3 地址分配的实现 …………………………………………………………… 140; ]) \0 N  \, ~, X
6.3.4 地址释放的实现 …………………………………………………………… 142
3 y6 d) m/ A* V* ]; l6.3.5 测试 ………………………………………………………………………… 142
* b4 K; `% s5 G( K" D/ e6.4 创建Bridge 网络 …………………………………………………………………… 144; Y$ B- U( A' z4 C0 n
6.4.1 Bridge Driver Create 实现 …………………………………………………… 144+ q9 i: Q6 J4 O- c
6.4.2 Bridge Driver 初始化Linux Bridge 流程 …………………………………… 144
6 V5 t, e' e6 h. o: g9 V6.4.3 Bridge Driver Delete 实现 …………………………………………………… 1485 @: P+ B& T$ X4 r0 i( n
6.4.4 测试 ………………………………………………………………………… 148/ K, M' [: t* g; G
6.5 在Bridge 网络创建容器 …………………………………………………………… 149
( P" I& n" c; R# Y* l6.5.1 挂载容器端点的流程 ……………………………………………………… 150
" q- D1 `: [1 P" A- e7 x* a( x6.5.2 测试 ………………………………………………………………………… 156
7 R0 s4 i. `; e) V6.6 容器跨主机网络 …………………………………………………………………… 159
4 b/ C! _2 h6 n' B6 o6.6.1 跨主机容器网络的IPAM …………………………………………………… 160
! w( X' R- z" @6.6.2 跨主机容器网络通信的常见实现方式 …………………………………… 161
- ^2 T! L! R* ?/ ^6.7 小结 ………………………………………………………………………………… 163
) `% _$ z: T; s' z! `, a第7 章 高级实践……………………………………………………………………………… 1648 ~6 q+ t# s) l4 u6 c6 \
7.1 使用mydocker 创建一个可访问的nginx 容器 …………………………………… 164
- t, v; ]# K6 s1 u. P$ b/ A7.1.1 获取nginx tar 包 …………………………………………………………… 164
1 s( Y9 N( `6 u. E, ^4 }7.1.2 构建自己的nginx 镜像 ……………………………………………………… 165# y' z! _5 F# M. e* s
7.1.3 运行mynginx 容器 ………………………………………………………… 1678 h5 B) E5 o0 Y1 x0 _+ h
7.2 使用mydocker 创建一个flask redis 的计数器 ………………………………… 169
! O. H- m7 y/ v7.2.1 创建redis 容器 ……………………………………………………………… 169+ ?3 B1 t" g! d
7.2.2 制作flask 镜像 ……………………………………………………………… 173
) I& \% G& [5 W1 u百度云盘下载地址(完全免费-绝无套路):
游客,如果您要查看本帖隐藏内容请回复
6 R. Z* G) f& Z! o1 z$ d

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
关注下面的标签,发现更多相似文章
分享到:

回答|共 16 个

琴弹牛

发表于 2023-9-22 14:14:58 | 显示全部楼层

java吧 真给力

站住别走

发表于 2023-9-22 19:30:03 | 显示全部楼层

我又来了 白漂开始

中砚酒业

发表于 2023-9-26 10:18:15 | 显示全部楼层

给力,真免费

金格尔蒙餐

发表于 2023-9-27 07:35:35 | 显示全部楼层

真的无套路,大赞

雅颂红酒

发表于 2023-9-27 16:43:07 | 显示全部楼层

真的免费下载 难得

不需要鸡汤

发表于 2023-9-29 07:39:44 | 显示全部楼层

免费下载的网站 头一次遇到 不错

嘉洋

发表于 2023-10-1 15:12:01 | 显示全部楼层

学习java,就选java吧了

犀利猫肥姐

发表于 2023-10-2 23:01:28 | 显示全部楼层

不错不错,下载到了

鐿紓

发表于 2023-10-3 07:00:15 | 显示全部楼层

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

本版积分规则