From 070359c51180fda036e23d983ba9c12166afd6c8 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Sun, 21 Dec 2014 19:24:20 +0800 Subject: [PATCH] Refine the preface content --- README.md | 17 +++++++++-------- SUMMARY.md | 2 +- docker_primer.png | Bin 0 -> 55146 bytes underly/ufs.md | 10 +++++----- 4 files changed, 15 insertions(+), 14 deletions(-) create mode 100644 docker_primer.png diff --git a/README.md b/README.md index 7d054fb..2aa1c85 100644 --- a/README.md +++ b/README.md @@ -7,18 +7,15 @@ v0.3.0 本书既适用于具备基础 Linux 知识的 Docker 初学者,也可供希望理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。 -本书源于 [WaitFish](github.com/qcpm1983) 的《[Docker 学习手册 v1.0](https://github.com/yeasy/docker_practice/raw/master/_local/docker_manual_waitfish.pdf)》内容。后来,[yeasy](github.com/yeasy) -根据最新 Docker 版本对内容进行了修订和重写,并增加内容;经协商将所有内容开源,采用互联网合作的方式进行维护。 +本书前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11 ~ 13 章介绍关于 Docker 实现的相关技术。 -前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11 ~ 13 章介绍关于 Docker 实现的相关技术。 +最新版本在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice) 或 [DockerPool](http://dockerpool.com/static/books/docker_practice/index.html)。欢迎加入 DockerPool QQ 群(341410255),分享 Docker 资源,交流 Docker 技术。 -最新版本在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice) 或 [DockerPool](http://dockerpool.com/static/books/docker_practice/index.html)。 +![Docker 技术入门与实战](docker_primer.png) -另外,欢迎加入 DockerPool QQ 群(341410255),分享 Docker 资源,交流 Docker 技术。 +《[Docker 技术入门与实战](http://item.jd.com/11598400.html)》一书已经正式出版,包含大量第一手实战案例,欢迎大家阅读使用。 -本书源码在 Github 上维护,欢迎参与: [https://github.com/yeasy/docker_practice](https://github.com/yeasy/docker_practice)。 - -感谢所有的 [贡献者](https://github.com/yeasy/docker_practice/graphs/contributors)。 +[京东图书](http://item.jd.com/11598400.html) [当当图书](http://product.dangdang.com/23620853.html) ## 主要版本历史 * 0.3: 2014-11-25 @@ -40,6 +37,10 @@ v0.3.0 * 修正错别字和表达不通顺的地方。 +本书源码在 Github 上维护,欢迎参与:[https://github.com/yeasy/docker_practice](https://github.com/yeasy/docker_practice)。 + +感谢所有的 [贡献者](https://github.com/yeasy/docker_practice/graphs/contributors)。 + ## 参加步骤 * 在 GitHub 上 `fork` 到自己的仓库,如 `docker_user/docker_practice`,然后 `clone` 到本地,并设置用户信息。 ``` diff --git a/SUMMARY.md b/SUMMARY.md index 1270379..6874687 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -66,7 +66,7 @@ * [基本架构](underly/arch.md) * [名字空间](underly/namespace.md) * [控制组](underly/cgroups.md) - * [Union 文件系统](underly/ufs.md) + * [联合文件系统](underly/ufs.md) * [容器格式](underly/container_format.md) * [网络](underly/network.md) * [附录一:命令查询](appendix_command/README.md) diff --git a/docker_primer.png b/docker_primer.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4294dbbf64eef81ac0e85ce11105e7737b5fe4 GIT binary patch literal 55146 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

Y)h6D~{F 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 tQfR1Ds@3e=y5j%<002ovPDHLkV1iO*Rk{EG literal 0 HcmV?d00001 diff --git a/underly/ufs.md b/underly/ufs.md index 42ea155..256cc77 100644 --- a/underly/ufs.md +++ b/underly/ufs.md @@ -1,10 +1,10 @@ -## Union 文件系统 -Union文件系统([UnionFS](http://en.wikipedia.org/wiki/UnionFS))是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。 +## 联合文件系统 +联合文件系统([UnionFS](http://en.wikipedia.org/wiki/UnionFS))是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。 -Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。 +联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。 另外,不同 Docker 容器就可以共享一些基础的文件系统层,同时再加上自己独有的改动层,大大提高了存储的效率。 -Docker 中使用的 AUFS(AnotherUnionFS)就是一种 Union FS。 AUFS 支持为每一个成员目录(类似 Git 的分支)设定只读(readonly)、读写(readwrite)和写出(whiteout-able)权限, 同时 AUFS 里有一个类似分层的概念, 对只读权限的分支可以逻辑上进行增量地修改(不影响只读部分的)。 +Docker 中使用的 AUFS(AnotherUnionFS)就是一种联合文件系统。 AUFS 支持为每一个成员目录(类似 Git 的分支)设定只读(readonly)、读写(readwrite)和写出(whiteout-able)权限, 同时 AUFS 里有一个类似分层的概念, 对只读权限的分支可以逻辑上进行增量地修改(不影响只读部分的)。 -Docker 目前支持的 Union 文件系统种类包括 AUFS, btrfs, vfs 和 DeviceMapper。 +Docker 目前支持的联合文件系统种类包括 AUFS, btrfs, vfs 和 DeviceMapper。