mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-10-19 17:46:09 +00:00
659473e6d80819381038152855ba10707a1bbec8
章节里写着「完整的文件如下」,仓库里配套的实际文件却已经和正文对不上。 这类漂移比正文里的笔误更隐蔽——读者按目录跑起来的是另一份东西。 - `11_compose/demo/django/Dockerfile` 用的是 `ENV PYTHONUNBUFFERED 1` 这种 空格旧写法,而 7.6 节写着绝对规则:「已被官方弃用……`docker buildx build --check` 会直接把它标出来。**一律用等号**」。这是全仓唯一一处违反(已扫过 全部 md 与 11 个 Dockerfile)。同文件还有三处与 11.6 节不符:`FROM python:3` (章节是 3.12-slim)、`pip install` 缺 `--no-cache-dir`(章节专门列表讲了 它的作用)、requirements 用 psycopg2 而章节表格写着「推荐使用 psycopg 3」。 按 11.6 同步,现与章节代码块逐字节一致。 - `07_dockerfile/multistage_example/laravel/Dockerfile` 与 7.18 节差三处, 两处有实质后果:`chmod -R 777 storage`(章节是 `chown www-data` + `775`) —— 而 18.5 节正拿 `777` 当"全员读写权限"的风险范例;以及 `COPY composer.json` 漏掉了 `composer.lock`,正好破坏该章论证的可复现性。第三处 nginx 标签 1.30 与全书 20 处 1.28 不一致(且章节自己的注释就推荐 1.28-alpine)。 同步后与章节仅差章节独有的那行说明性注释。 - `11_compose/demo/wordpress/docker-compose.yml` 的 wordpress 服务**完全没有 `volumes:`**,而 11.8 节专门加粗警告过「`volumes` 配置很重要!没有它,每次 容器重启数据都会丢失」并声明了 `wp_data`。该 demo 恰好演示了章节警告的那个 故障。另外还缺 `wp_net`、两个 container_name、`WORDPRESS_DB_NAME` 与 `uploads.ini` 挂载。按章节同步,并补上章节 11.8.3 已给出内容的 `uploads.ini` (否则挂载会指向不存在的文件)。同步后 YAML 实测可解析,volumes 为 db_data + wp_data。 `secrets/` 目录未补:它被 .gitignore 有意排除,demo 的 README 就是教读者 自己创建的,属于设计而非缺失。
关于本书
Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松!
无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,节约有限的生命。
本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。
内容特色
- 入门基础:第 1 ~ 6 章为基础内容,帮助深入理解 Docker 的基本概念(镜像、容器、仓库)和核心操作。
- 进阶应用:第 7 ~ 11 章涵盖 Dockerfile 指令详解、数据与网络管理、Buildx、Compose 等高级配置和管理操作。
- 深入原理:第 12 ~ 17 章介绍其底层实现技术,深入探讨容器编排体系 (Kubernetes、Etcd),并延伸涉及容器与云计算及其他关键生态项目(Fedora CoreOS、Podman 等)。
- 实战扩展:第 18 ~ 21 章重点讨论容器安全防护机制、监控与日志聚合系统 (Prometheus、ELK),并展示操作系统、CI/CD 自动化构建等典型实践案例。
五分钟快速上手
“5 分钟运行第一个容器”——跟随以下步骤快速体验 Docker:
- 安装 Docker(第 3 章):根据操作系统完成 Docker 的安装与验证
- 第一个容器(第 1 章
1.1):快速体验构建镜像与启动容器的完整流程 - 交互式容器(第 5 章):执行
docker run -it ubuntu bash,进入容器内部与系统交互 - 镜像与仓库(第 2 章、第 4 章、第 6 章):理解核心概念,并学会拉取、使用与管理镜像和仓库
- 自定义镜像(第 7 章):学习如何编写 Dockerfile 创建自己的镜像
学习路线图
graph LR
Start[Docker 学习入口] --> Ch1[第1章:Docker 简介]
Ch1 --> Role1["运维新手<br/>第1-6章"]
Ch1 --> Role2["开发者<br/>第1-8章 → 第11章"]
Ch1 --> Role3["DevOps 工程师<br/>第1-11章 → 第13-14章 → 第18-21章"]
Ch1 --> Role4["架构师<br/>第1-6章 → 第12-17章 → 第18-19章"]
Role1 --> End1["掌握基本操作"]
Role2 --> End2["构建与部署应用"]
Role3 --> End3["自动化与运维"]
Role4 --> End4["设计容器方案"]
| 读者角色 | 学习重点 | 核心成果 |
|---|---|---|
| 运维新手 | 第 1-6 章 | 掌握容器的基本概念与操作 |
| 开发者 | 第 1-8 章 → 第 11 章 | 学会容器化应用的构建与部署 |
| DevOps 工程师 | 第 1-11 章 → 第 13-14 章 → 第 18-21 章 | 实现容器编排与自动化部署流程 |
| 架构师 | 第 1-6 章 → 第 12-17 章 → 第 18-19 章 | 设计高可用、高性能的容器基础设施 |
在线阅读
本书在线阅读,可直接访问 GitBook。也可访问 GitHub 仓库目录。
下载离线版本
本书提供 PDF 版本供离线阅读,可前往 GitHub Releases 页面下载最新版本。
如需获取默认分支自动更新的预览版,可直接下载 docker_practice.pdf。该文件会随主线更新覆盖,不代表正式发布版本。
本地阅读
先安装 mdPress:
brew tap yeasy/tap && brew install mdpress
mdpress serve
社区交流
- GitHub Issues(内容错误、建议)
推荐阅读
本书是技术丛书的一部分。以下书籍与本书形成互补:
| 书名 | 与本书的关系 |
|---|---|
| 《前线部署工程实践指南》 | 讲容器、Kubernetes、GitOps、IaC、供应链、安全、观测与 SLO 如何组合成可交付、可审计、可运营的部署工程体系 |
| 《智能体 Harness 工程指南》 | Agent 基础设施中的容器化部署与隔离 |
| 《大模型安全权威指南》 | 容器安全与 AI 系统安全的交叉实践 |
| 《区块链技术指南》 | 区块链节点的容器化部署 |
参与贡献
欢迎参与项目维护。
进阶学习
《Docker 技术入门与实战》已更新到第 4 版,讲解最新容器技术栈知识,欢迎大家阅读并反馈建议。京东图书 | 天猫图书
支持鼓励
欢迎鼓励项目一杯 coffee~
Star History
许可证
本书采用 CC BY-NC-SA 4.0 许可证。
您可以自由分享和演绎,但需署名、非商业使用、相同方式共享。
Languages
Go
94.8%
Python
5.2%

