第 一部分 Docker概览
% N* d2 t9 X, q0 l1 N; e/ I: r+ ^8 S: S
第 1章 容器发展之路 23 r' Y, g& D; Q7 ^) S+ r. e8 y$ B
& w: w% J+ m9 q9 s7 \) G
1.1 落后的旧时代 2: m, L, Z% M4 |$ G) c" H
4 w" I/ K5 B1 X, A0 w/ D) N3 M* V1.2 你好,VMware! 2
8 l* g! E9 S/ A. r- a r, Q, d& Q$ A D e7 |) ]( C
1.3 虚拟机的不足 3
0 N; l7 q- o6 ~& W7 d, Q0 \6 w; e
+ b; X# S$ w! l# E& E) \- Q1.4 你好,容器! 3# v9 B- R5 N- ?4 z: l6 M1 [3 ]
& s7 o1 ?& w" D1.5 Linux容器 3
8 z+ u, C3 \! E- b4 x* E4 F8 _( t" D
# Z! ~; `/ {0 C* t8 O- J1.6 你好,Docker! 4
( ?8 f& z' H$ E
3 G& D2 j! V( z3 P/ I9 C; r5 W7 g1.7 Windows容器 4
6 @" M! ^) o/ ]2 X r1 d1 S/ T- x$ U7 K' I: V, t# l! U8 c+ I
1.8 Windows容器vs Linux容器 4
, i; X! e/ A5 n: ~7 p+ w x' T; T8 p
1.9 Mac容器现状 5. h- M- U3 M6 g! R3 P( \
- S$ W- {* A4 q+ Z* d6 z( R
1.10 Kubernetes 5* s. [! p+ b0 @; }: I3 D8 e: ~% h
1 p8 H! x8 W9 v; s D4 X
1.11 本章小结 6: x' N- i3 y" Z4 m! g- F0 e
, x. o i' u. p
第 2章 走进Docker 7( ]$ ^# b* ~& ?
, S! ^& f6 j7 p* t7 N! L. w* E2.1 Docker—简介 7
9 q7 k, U( t8 v6 I
7 P7 m2 i: B! ~* q2.2 Docker公司 7$ z+ b1 `' V# s% g" g; h. I
- y# y0 U. ?. H$ O7 |2.3 Docker运行时与编排引擎 8 U) X" }5 l$ I& u; M! a2 F
* I4 i7 l# B: a* U: ^
2.4 Docker开源项目(Moby) 96 N" N* @4 m! J
0 e, t- Z0 T! ~5 l
2.5 容器生态 10 F% ]4 y3 a* m, g
, h$ [" q$ s; p t, U
2.6 开放容器计划 11
9 H, \ i" g3 N% a& r8 I# U0 ?( w# y0 g- |2 n. A3 ?7 p' H
2.7 本章小结 12) Z3 H/ Q- @9 x8 F
1 s3 Y' m1 q7 m# Q
第3章 Docker安装 13' \2 w/ |' `$ B; n
% h! [ G4 i \6 k: Z" r$ }: j4 ^3.1 Windows版Docker(DfW) 13! v( P& e! A" @& M, ^8 }0 H
' [1 U5 A5 ^+ l
3.2 Mac版Docker(DfM) 17& c( p$ ~! i3 j' q) ~
, x. R; p% f ^: V1 U! p+ ~3.3 在Linux上安装Docker 19
8 I J. c$ \, D; t& H/ ~: N9 f/ S, S7 y+ J
3.4 在Windows Server 2016上安装Docker 21' ^& T a$ J% e% F
" u; K* d. V5 L
3.5 Docker引擎(Engine)升级 22
: p* L- H4 _" }2 t: C# N, w0 ^- L- G; {1 ]& C$ H% J
3.5.1 在Ubuntu 16.04上升级Docker CE 23
4 @2 m( X1 i* Y+ ^) F: m% Q/ Q
% Z+ n+ r7 Q/ e3.5.2 在Windows Server 2016上升级Docker EE 24) A6 M5 P2 {( @7 ~" K" f
; c; A- g9 w4 A C/ Z8 O3.6 Docker存储驱动的选择 25
( j$ H+ ~# j+ j+ g9 F1 N, ^" a0 V* p' g9 |
3.6.1 Device Mapper配置 26
1 h, M' H' R& ?& F1 f5 |5 M
2 ]; \ B: |9 M' Q7 g3.6.2 让Docker自动设置direct-lvm 26
+ P& y# `# V- C$ C" k9 _
0 \& |- P. L( S7 W7 W6 q3 J& ^7 y3.6.3 手动配置Device Mapper的direct-lvm 288 M' T0 Q/ Q- P0 a6 F
* T( ~1 K" k9 I5 [6 D0 r
3.7 本章小结 28
/ q' v7 y7 C) F! D" b
% ], ^) h$ \! i, y8 [; q第4章 纵观Docker 29$ ~$ W, K& Z! _8 X- X2 ?8 S
' u+ Q( N/ s+ L1 V4.1 运维视角 29% L; w: o5 ~: i6 E6 d; Q; q
/ E5 G* i4 z! [$ ?, B6 N4.1.1 镜像 306 M$ }6 v+ k- {. G
. H, F+ F# _+ C0 c4.1.2 容器 31
2 o. k. Z. y! k. Z6 N
3 K! _4 A; ?# s/ G: ?! l4.1.3 连接到运行中的容器 346 n) V z) O' ~# S3 t0 m1 \9 }
9 T$ ?. q# t: G7 f6 Q0 B4 O) x! S4.2 开发视角 35# O8 D, y- p d! v
9 _/ G% s7 q6 R& k5 D0 y0 j2 c: {4.3 本章小结 38
6 a- J! c! [ O9 f
9 X3 d2 q* K ^" W0 u第二部分 Docker技术* O5 q* @0 m6 L
5 k) Q$ r5 g, q
第5章 Docker引擎 40
6 a) [" p0 f( S3 }$ h5 s3 q/ N0 e* {6 j I3 D/ ?( C+ M7 t
5.1 Docker引擎—简介 40" a m* }0 n2 w& _
1 N+ g0 k8 }3 p. }, K$ W/ `: D
5.2 Docker引擎—详解 41
1 ^. i0 z1 Q0 @$ i% L3 N
0 |2 D6 W1 w: H9 I- N) j5.2.1 摆脱LXC 416 X2 b6 j) S: B6 r9 J" `+ {! g
; M( O; P" \0 y! r% z5.2.2 摒弃大而全的Docker daemon 421 F1 J2 x2 K$ J. F3 |0 w, d
. e3 Z/ X X( i) Q( _
5.2.3 开放容器计划(OCI)的影响 43
3 n) R- u# z0 d3 {" z1 P* d5 I
) h: C; c& x1 u2 g! v2 z4 n1 _5.2.4 runc 438 d" |, N0 p: W. R1 _: C. w5 A4 W
6 j: t/ {$ Z7 w/ M' D X
5.2.5 containerd 43
4 s1 A. b2 |! H% s3 H3 e- ?5 t/ u: p( Y
5.2.6 启动一个新的容器(示例) 440 A0 `# `3 u: S: Q' ^
( h* }* t5 k; b2 r- b2 j" E
5.2.7 该模型的显著优势 45
* G# \* b7 K v9 [
' Y0 H0 x9 D& `% L" c5.2.8 shim 45
. W9 o9 i! X; ?% T3 p! [" l# d g$ ]: q+ l: `) T1 R! H
5.2.9 在Linux中的实现 46
0 S) g2 t( _9 g' S5 l/ [: [; F, X# K/ V5 W% E3 k" G! X
5.2.10 daemon的作用 46
( U3 r2 V! U% F; g& J& r5 }- A% _0 O$ C; d
5.3 本章小结 46
$ h0 Y" H0 i9 k5 y$ u0 D+ {/ G- ?4 v) A# t4 O
第6章 Docker镜像 48- X6 ~0 W6 Z2 T! c1 O) I; j u) `
, g# j z. R7 p* U8 ^6.1 Docker镜像—简介 480 d% J/ t- M( V1 S9 r/ t
- S( ?' p+ B2 e7 _# s7 D( \6.2 Docker镜像—详解 48
2 c! ?5 J* x9 ` D) ]" C. p# p% H
6.2.1 镜像和容器 49! P( o5 @3 V3 f7 W
- Y% x1 a$ }( ?, S# T1 g6.2.2 镜像通常比较小 49- f f7 U4 j) l' ?# R9 j# e
% \5 n( X8 A3 s5 {. r/ f
6.2.3 拉取镜像 49
& L& t8 s0 |- {8 @4 N* U* P4 b+ O9 u
6.2.4 镜像命名 51
8 _9 R0 T+ H; H* [6 p3 o
+ I. J4 H5 j& `3 @! v# Z' w+ N5 H6.2.5 镜像仓库服务 51
2 @6 Q2 W7 [3 W$ h7 g
8 t2 [4 b) H X, I6.2.6 镜像命名和标签 52
3 O( i& p4 g! C, |
% b: @8 j8 r" N3 n T) }) L5 ~6 N$ `6.2.7 为镜像打多个标签 54
3 d7 \; G% k1 Y. s1 z3 o5 i# ~( N( I; L6 O
6.2.8 过滤docker image ls的输出内容 55
x2 m* I: v" p' y3 ^8 g) l4 S8 l/ Y3 S' ]8 L
6.2.9 通过CLI方式搜索Docker Hub 564 r3 j% r+ o% |$ t7 s. U8 m
7 _, h: K* o6 D, b/ y. y/ m
6.2.10 镜像和分层 57' p% L. ]( K+ R
% y6 M8 U& L$ i m) a6.2.11 共享镜像层 60
+ N! q$ j0 d, e' }7 X8 e2 ~1 c% w5 @
6.2.12 根据摘要拉取镜像 61' ?& U0 G* ~: K" C( F
8 K& B7 E, J5 E P* R, A
6.2.13 镜像散列值(摘要) 63
. M. u5 N) J) u+ @1 m1 o# ]2 k3 H9 |
o/ y; r! w; c5 v l7 j( f6.2.14 多层架构的镜像 63
0 t# D: g3 r! f( u1 z0 b( D H1 r4 O3 P2 }( P( F3 A
6.2.15 删除镜像 65" [2 P( K9 `; [8 w8 ~) q! w: [1 R5 B
5 R) h" p" L) I6 Z% j" [+ A6.3 镜像—命令 67
0 [+ ^/ x0 u C& g3 R3 R( E& }
* |. s4 K9 e6 ~" S7 d# M0 Q0 y6.4 本章小结 67
) W; h8 y a7 N- c1 u h! e+ ~( V- q" l9 R( d9 c
第7章 Docker容器 68
! {( q3 F# c3 \$ N# l. e
3 k. ~( Y. H+ X6 c' X8 u1 ]7.1 Docker容器—简介 684 T$ ~2 Z0 `6 h1 p# }; }9 Y& Z: P
: O+ N4 x8 m2 [+ A% b: \7.2 Docker容器—详解 697 V% A8 w5 m0 j8 [$ P+ L7 @
" k, a$ D( G M* p3 f
7.2.1 容器vs虚拟机 69
4 g8 Z/ b- X( F+ H5 X
/ ]0 l" j' l$ @( g0 {: Y" _! `7.2.2 虚拟机的额外开销 71$ K, |. D) g8 g
4 i" _7 c2 G {- h# d: g7.2.3 运行的容器 71
) \, }" |8 Z9 I' K! |! a/ x
2 v* N$ Q k- s* ~' G7.2.4 检查Docker daemon 711 S5 l; P* [) G( x. v- d
8 x- z, j5 b- f7 g. W7 y* _
7.2.5 启动一个简单容器 724 b# B! B& c* J- J. t6 E
0 S3 H4 Z$ ]! ~9 H H/ J
7.2.6 容器进程 745 l8 t3 H) A: p7 t
4 _. M- D7 `5 Z) x/ P
7.2.7 容器生命周期 75
& F# C: s( F' A9 v" y9 d( G% L
* F$ j$ R. y: f. r1 j, ~! B$ C7.2.8 优雅地停止容器 784 p6 q4 e5 V( w7 [- E8 [* H' P
3 d( T& l; w# o& \. r+ L7.2.9 利用重启策略进行容器的自我修复 781 w' m: U1 q; m# C
& l% I- C7 u: F- e; N
7.2.10 Web服务器示例 80
2 P1 u6 H0 @9 M! P+ x
9 T, P/ W f5 p" Y2 Z+ N/ V1 H7.2.11 查看容器详情 82
, y: F" [+ s" b: I
2 W! O7 ^+ _8 ]7.2.12 快速清理 822 }* \- ]5 ?: O8 V# I" D8 H5 A; W
' ]& V! u, _5 H! j; V' O! M7.3 容器—命令 83
. \+ e3 F2 K2 c! n P" U3 n; V8 D) p( x* p# E
7.4 本章小结 84+ l B; c) _1 ] H, e! ~8 e; n
2 q0 s- l; H4 d6 c/ E: x: v& \7 f$ a第8章 应用的容器化 85: Z }1 T1 E* j( M
- t2 P6 R: z* I& l9 P* \% m
8.1 应用的容器化—简介 85& }0 Z, S8 d+ H, F% I$ V
+ @. G" f$ d3 Z% s: |8.2 应用的容器化—详解 86, H( ~/ s6 i2 v1 l$ S- l5 q
; X$ Y7 [2 {$ [4 _ X5 T ]; j- n8.2.1 单体应用容器化 86
# H j+ G1 p' f) t. H, _8 E/ e" j6 ?8 R
8.2.2 生产环境中的多阶段构建 95& ^4 ~* x$ {9 c; o O7 I- B+ |
! A9 @ I: U/ e4 i8.2.3 最佳实践 98( _+ \5 c! _8 X5 J
9 V; [/ S: e8 e" \6 H* Q
8.3 应用的容器化—命令 100
2 m" n" `! G2 b" Q1 }3 V
1 l: O' ?9 M* v# }# O0 Z8.4 本章小结 1015 c2 d! T. _4 j9 b7 ? F2 }) a+ W
3 ?& t. ?1 @, _ H1 K0 P) @, P+ \* }
第9章 使用Docker Compose部署应用 102- J4 O- _8 H; N ^; Z: L- V
$ P8 U$ `0 }8 k6 n2 \/ p& d9.1 使用Docker Compose部署应用—简介 1025 @' b% |( u! i1 ~* @" E- |, [
( ~" ]# t' a ~9.2 使用Docker Compose部署应用—详解 103( x3 x% S) R3 y; M! M; p/ [3 V
" Z g+ L9 x3 c* R4 T: @, v
9.2.1 Docker Compose的背景 103
7 n' l& Y- {* _( N, G& A5 R1 `# h- }5 x0 u Z+ u2 Q
9.2.2 安装Docker Compose 103
+ ^/ ^+ d$ E) J: M; K* q! Q; {' U8 c$ t! k/ }
9.2.3 Compose文件 105
& C, N- N% y1 h
& f8 t9 a! U+ G1 d1 E; |9.2.4 使用Docker Compose部署应用 107 p# G7 z2 s6 u" Q
# [6 X/ B. B' Z3 x1 B) y% T: N" Z
9.2.5 使用Docker Compose管理应用 110
2 b* K# R: C6 i% A0 {5 n" `7 F! P+ Z
9.3 使用Docker Compose部署应用—命令 115
) H% {5 f6 c! ]; v: k; r) S; i4 T( {$ v: k/ T8 l( ?. \
9.4 本章小结 116. @, a7 t' M* L8 F$ i7 Q& @
. y4 V3 q- S) s$ v5 f" l4 S
第 10章 Docker Swarm 1176 F+ j5 |. ]! H- V* m# l
% X1 B3 z' P5 g( s* N! P5 x10.1 Docker Swarm—简介 117- @) ~9 N1 f: [ l
6 l x8 M3 l1 ~4 M' ~+ _10.2 Docker Swarm—详解 118
1 Y* h+ w6 C- c0 }7 u
5 H1 q4 R0 `! a8 D10.2.1 Swarm的初步介绍 118- v( Y! f; w, ]4 j
& o& P1 G, D0 m4 A10.2.2 搭建安全Swarm集群 1197 _ M' A7 O% W% l% z" L
1 t4 Q/ T0 O+ X& A9 v
10.2.3 Swarm服务 1256 v9 O4 \0 C8 W8 L J' T) o2 o4 Q( S5 N
2 Z1 }2 i. q2 H! d3 d# {7 b8 ]
10.2.4 故障排除 133
O% q$ v; y) x. v ?
3 l+ m9 X* i+ x5 c" I) O, s, I6 s) }10.3 Docker Swarm—命令 134
# }1 Q8 M# a0 Q
' P" m& u1 W; J+ ` O10.4 本章小结 1358 ]2 Y7 y+ r& Q! @8 F) o5 T, q9 R1 `' c
& q* r, c! a. K+ u' f4 y第 11章 Docker网络 136
" J% p# l1 I6 v0 c
1 o0 X8 d$ D n3 W. w2 w6 |11.1 Docker网络—简介 136
$ q( E" ]5 i; p; L% X1 D* W/ [3 I) Q4 `1 c
11.2 Docker网络—详解 137
4 A( C- H! ]4 P# s; U. X9 V, B5 s# [ S
11.2.1 基础理论 137
: a o9 h0 i+ l* d& y" D: A. o/ B+ h6 S; S3 S; W
11.2.2 单机桥接网络 1407 ]* j O( h6 p1 z4 s7 T+ _% ]6 I
`$ ~/ I+ e: e$ A/ L/ e11.2.3 多机覆盖网络 146$ V% u3 j; [! @; D1 Z+ X5 E
3 W" e% m" [* S7 ?& L& t
11.2.4 接入现有网络 1466 w1 i4 @* T: ~0 `# p7 W
5 |# A' a9 v7 J2 n4 u11.2.5 服务发现 152
8 _; s0 G& r# s. A
9 O7 Z) x; ]. V4 R X6 K0 y! q; _0 D11.2.6 Ingress网络 153
6 } ?" k7 O$ ]5 u# d' u1 e& t2 G8 n& S
11.3 Docker网络—命令 1568 p$ S* L. W7 S1 ~1 x& o9 o4 K6 g3 t
7 ]5 p; h5 Q5 G2 J0 r+ T c$ P11.4 本章小结 156" a4 v) L$ u5 \
9 \' T' Y. P. y8 o( j第 12章 Docker覆盖网络 157' B0 {0 _! m- Y: ], J" E# h
1 D' e6 B" \* _5 S0 [5 t
12.1 Docker覆盖网络—简介 157! [6 X: B G* N7 y
1 `% B9 u- J# p0 h/ O
12.2 Docker覆盖网络—详解 157# i! g' P0 l( T8 U7 ?' R7 D3 _; u
( a" N- y: k7 s12.2.1 在Swarm模式下构建并测试Docker覆盖网络 158! U5 G2 ~) V$ G% q: d
& f/ W) c( S( Y12.2.2 工作原理 164* B7 s4 I) O, ^
& g+ M# e; ?( g F12.3 Docker覆盖网络—命令 168
: [& M# }- C: Y* p( u
3 ~; C0 j6 i& A6 `. i \12.4 本章小结 168
' P; l: k9 \, G: g# P- s8 t2 x) N: W! J" b- o% E6 Y4 m4 G5 l
第 13章 卷与持久化数据 169
6 L' F5 i) v) A" {3 y4 A7 g: z: o0 R: s4 M
13.1 卷与持久化数据—简介 169
3 Q/ {1 F* z8 T' }7 C- O/ B( V# |: c/ h! j7 H
13.2 卷与持久化数据—详解 169
8 N8 |4 c Z! q1 ^' ~ p- n
( t, U& s% P) `8 }0 _5 L1 ?5 |13.2.1 容器与非持久数据 170
8 u5 t5 @( ?3 t3 `% ]7 \$ B
; m( @# i8 I/ b6 b9 R13.2.2 容器与持久化数据 1708 O3 o- Z! Y$ N6 E( X% D8 f' R1 y4 @& I
" l3 p3 H* |) V$ ]: O: O; s13.2.3 在集群节点间共享存储 175
# i0 e9 S$ I) d, z; P
& W5 c0 ]) U8 h6 ~, Q( Q13.3 卷与持久化数据—命令 176' l4 ^. V; z- [- `" J
8 k; h9 _' ^: Y) n
13.4 本章小结 176
# l6 b5 k6 \. U9 o8 U- Y9 X
( \9 \* N* Z% S) Y8 u& E" k( @第 14章 使用Docker Stack部署应用 177( a* I, f; H% P( {7 \; F( \! K! Q, d. T
' c3 j$ h& v4 L4 f14.1 使用Docker Stack部署应用—简介 177
) Q3 |4 {$ G1 }( M4 t: k
: F( ^1 Y6 u7 Y14.2 使用Docker Stack部署应用—详解 178
/ v$ D3 h% ]; i P; G5 N }; u6 s- R) _
14.2.1 简单应用 1787 U' s, x( M* r# F- e$ v
- z+ s. `5 y7 d5 ?, Y& Z3 g8 \3 i4 H14.2.2 深入分析Stack文件 1808 o `9 [9 E% B$ }$ L) D* H" P
+ @; z& ~3 _2 a$ j: O( d" g. g( q4 N
14.2.3 部署应用 186
# Q/ ~! E/ ~3 W/ X- l4 N- U. v! [6 }7 _ [- U; F2 Y
14.2.4 管理应用 191
, k% G. B9 Y* b2 d5 m( R* \7 l. F- A: ~: T% m3 b$ f) I
14.3 使用Docker Stack部署应用—命令 193
' k1 P5 e9 x7 L
) p' w+ C9 z4 n5 ?8 r14.4 本章小结 194" q% n4 i7 n0 i; k& D; H
+ P( z' d% B) x3 }1 {. n, ^
第 15章 Docker安全 195 N$ f% T( Q+ W u
8 M) I) m" B6 F15.1 Docker安全—简介 195
' M% [- t# ]- [1 C3 \7 p- a$ E+ g5 ]/ s4 Y1 {
15.2 Docker安全—详解 196# r- d0 C. e4 x3 q6 ~" k
9 l# q) ^- v& S2 W: U+ J15.2.1 Linux安全技术 197' o$ A2 N- R! K: p3 U
* o" W/ i n, B; u
15.2.2 Docker平台安全技术 201' X1 |) h4 s+ Q4 M4 T8 r
" @& K( M$ U7 N. f6 E3 l15.3 本章小结 212
9 v* l0 g+ P6 ~( ?" ?4 W0 e/ s$ u+ m
第 16章 企业版工具 213
javazx.com/ a7 w3 P& U0 `, S8 h6 |# Q" {: ^
4 t, X0 K# s1 q9 M! i' ]( E& B
16.1 企业版工具—简介 213
7 o$ S; ^% i- i$ q* q
1 @0 z# k+ S5 n+ l: l( {16.2 企业版工具—详解 214
7 M% c: B E/ Z0 Z! s
2 U9 W+ X1 I6 G% J0 F16.2.1 Docker EE引擎 214. A6 l4 w* U6 k4 p( b; \9 O6 K
1 L9 K$ ?7 G6 y. i- G m" d8 `16.2.2 Docker通用控制平面(UCP) 216
3 m' P, W- L P. _9 [9 _# c
3 w, o" b8 G- a \* p8 f% ]16.2.3 Docker可信镜像仓库服务(DTR) 227+ S+ Q5 y; D6 K" | [/ n+ |! d
7 @1 _' ^% E/ `6 H @7 S; c) Y% y16.3 本章小结 233: J1 i6 m0 |$ U8 w% d
/ A) ?& D. c- J+ X9 W, Y2 h8 E* Z第 17章 企业级特性 234* r5 _# z' K6 j* Q, v" v% K
. I( |: }5 ?9 w$ U6 c17.1 企业级特性—简介 2343 Q2 t/ G" O7 b; r
8 D) j+ v2 J7 ^
17.2 企业级特性—详解 234$ x5 Q7 A1 r) j" H1 ]5 l {
8 f' K$ ]8 @9 [" O
17.2.1 基于角色的权限控制(RBAC) 235
3 @0 D, { P9 ~. F% |* A9 Q
- m r9 P5 U7 b( t17.2.2 集成活动目录 2397 B3 d1 Q2 X: o$ m
8 \0 m6 {1 t# Z1 M6 I' g/ `& [
17.2.3 Docker内容信任机制(DCT) 241+ q8 L5 [1 ~. ?/ d
7 F! V2 `) |$ K! a17.2.4 配置Docker可信镜像仓库服务(DTR) 243! n/ t! F$ Z7 V3 z
H1 G" x) i/ W9 f
17.2.5 使用Docker可信镜像仓库服务 244
5 d, B! V, ?" g; J# Z: o6 o8 Q6 f/ l2 F7 t, [' O- }: x
17.2.6 提升镜像 2479 a: R+ P/ X6 U
+ B) Z/ a% f3 a/ u. v3 ]17.2.7 HTTP路由网格(HRM) 250* H+ E" ~) }& v: K4 I: O% Y5 q9 b
6 h/ y8 A$ O8 A& w. s- |5 {: Q# ?17.3 本章小结 253
% I- ~# W' Z* K, Z, q9 n. R S2 X7 @+ C4 S& g+ i
附录A 安全客户端与daemon的通信 255! k; i; k2 T" p9 z) ~7 P9 F
0 s& v% }9 G( {1 U附录B DCA考试 265* R a* ]- V4 x% U5 ~7 h
4 u: N* @& H* I6 z0 @/ U$ ~
附录C 延伸 270