yeasy
ac5ec03ab5
fix(安全,版本): seccomp 示例是安全降级,另修三处凭据/暴露面与九处版本过时
...
安全(四条,前三条都是书自己打自己):
- 18.5 的自定义 seccomp 示例用 `"defaultAction": "SCMP_ACT_ALLOW"` 写了一个
blocklist。但 `--security-opt seccomp=<file>` 是**整体替换**默认 profile
而非叠加(官方 seccomp 文档:容器"uses the default profile unless you
override it"),而默认 profile 恰恰是 deny-by-default 的 allowlist——本节
第 11 行自己就这么写的。净效果是:挡住了 chmod,却把默认拦下的那 ~44 个
高危调用(unshare / keyctl / add_key / bpf / perf_event_open / init_module
/ reboot 等)全部放行,**比不加这个参数更危险**,而读者会以为自己加固了。
改为从官方 default.json 派生,并在示例前置醒目警告。
- 7.6 把 `docker run -e DB_PASSWORD=xxx` 标成「✅ 正确」。它只是把泄漏路径
从镜像换到了别处:进 shell history、进宿主机进程 argv(同机任何用户 ps
可见)、并永久固化在 `docker inspect` 的 Config.Env 里。而本书 11.8:102
明写「不要把数据库密码写入 compose.yaml、.env、**命令行** 或 Git」,
16.3:251 也要求「避免把真实口令写入命令历史」。改为标注 -e 的泄漏面,
并给出 --env-file / Compose secrets 的正确做法。
- 6.2 教读者起一个**无认证、无 TLS** 的 registry,且引导把它绑到内网地址、
开 insecure-registries,全节零安全提示。同网段任意主机可匿名 push,即
镜像投毒。而 18.3:17 用最强语气写着「绝不能在没有任何安全控制的情况下
强行开启」。示例改为绑 127.0.0.1,并在两处补上风险说明与指向 6.3 的出口。
- 18.6 的 CI 示例里,Trivy 那条注释写着「务必使用不可变的 commit SHA 引用,
而非可变标签」(引的是 2026-03-19 Trivy Actions 76 个 tag 被劫持事件),
可同一 workflow 里另外九条 uses 全是可变标签,包括持有凭据的
docker/login-action。补一段说明点破这一点。(本仓库自己的
.github/workflows/ 确实全部按 SHA 钉死,已实测确认后才写进书里。)
版本时效(对 GitHub releases / endoflife.date / docs.docker.com 逐条核实):
- 5.1 与 6.3 说 `ubuntu:24.04`「是最新 LTS」——最新 LTS 已是 26.04
(2026-04-23 发布);而本书 3.1 早就列出了 26.04,属书内不一致。更糟的是
5.1 建议可替换为 `ubuntu:20.04`,而 3.1:33 正警告 20.04 已不在支持列表。
- 3.1 的支持列表里的 Ubuntu 25.10 已被 Docker 官方安装文档移除(该版本本身
也已于 2026-07-01 EOL),删去。
- 4.6 拿 `alpine:3.20` 当"锁定版本以确保可重现性"的范例,而 3.20 已于
2026-04 EOL;改为 3.24。
- 3.2 的「Debian Bullseye 11 将于 2026 年 8 月底结束长期支持」时态已过期。
- kind v0.31.0 → v0.33.0(落后两个小版本);etcd v3.5.29 → v3.5.33。
- 10_buildx/README 推荐「Docker v28 及以上」,而紧接着的段落就在用
「自 Docker Engine 29 起」立论;改为 v29。
2026-09-04 14:53:09 -07:00
yeasy
a780127d48
fix(用词): 「其它」统一为「其他」(34 处 / 25 文件)
...
《现代汉语词典》与《中文技术文档写作风格指南》都以「其他」为规范词形;
本书基线是 90 处「其他」比 35 处「其它」,是集群里遗留最多的一本
(其余各书 0~4 处,blockchain_guide 已于 2026-08-05 统一过 47 处)。
其中 6 处在标题和目录上——`4.6 其它制作镜像的方式`、`第十七章 容器其它生态`、
`18.5 其它安全特性`——标题与 SUMMARY 条目**同批改写以保持一致**:
改动后 196 条目录名与各文件标题仍是 0 处不一致。
**`CHANGELOG.md` 里那一处刻意不动**:它是历史发布记录,改它等于改历史。
改动前后逐字符对称差:只有 34 个「它」变成「他」,无其他字符变化。
`check_project_rules` 202/202、`check_emphasis` 202/202、37 tests OK。
2026-08-24 13:18:05 -07:00
yeasy
ef2625531d
style: 含中文的括号统一为全角(336 处 / 110 文件)
...
全书此前是真·五五开:含中文的括号 336 处半角 : 336 处全角,而且**在同一文件
内混用**——`18_security/18.1_kernel_ns.md` 第 11/17/20 行写 `(如 runC)`,
第 31 行写 `(用户命名空间映射)`。这不是体例问题,是它自己跟自己不一致。
集群里其余 13 本都一边倒(llm_internals 5 : 1049、oc_guide 2 : 713、
forward_deployed_engineering_guide 0 : 108),blockchain_guide 已在 2026-08-05
按同一方向统一过 97 处,故取全角,而非另立新规。全角括号前后不留空格,
原先 `概念 (镜像、容器、仓库) 和` 两侧的空格一并收掉。
**纯拉丁内容的半角括号一个没动**——`新建一个层 (Layer)`、`项目 (project)`
保持原样:改动前后「半角且内容纯拉丁」的数量都是 **1163**,而「半角且含中文」
从 **336 变成 0**。
其余验证:改动前后各自抹掉全部空白与圆括号后**逐字节相同**(两侧均 19559 字符);
左右括号总数改动前后都是 399 : 399,证明没有吞括号也没有配错对。
`check_project_rules` 202/202、`check_emphasis` 202/202、37 tests OK、
根 `format_checker` 与 `validate_codeblocks` 干净、`git diff --check` 干净。
2026-08-24 13:13:23 -07:00
yeasy
141fdc80bc
fix(examples): 修正若干无法按原样执行的命令
...
* appendix/repo/nodejs.md:`docker build -t my-nodejs-app` 缺上下文参数,实际会
报 "docker buildx build" requires exactly 1 argument;补 `.`。同文件 docker run
示例里 `# -v "$ ":/usr/src/myapp \` 这一行的注释把自己的续行反斜杠也注掉了,加上
紧跟的空行,命令在 `--name my-running-script` 处就结束、没有镜像名,后面几行变成
独立的无效命令。该行内容与下一行的 --mount 重复,且 `"$ "` 已是残缺文本,删去。
* 06_repository/6.4:`openssl s_client -connect YourDomainName OR HostIP:443` 里的
占位符带空格,shell 会切成三个参数,-connect 只收到 YourDomainName,openssl 直接
报错;`docker login YourDomainName OR HostIP` 同理。改为一个变量。
* 08_data/8.2:`docker run -v $(pwd):/app -p 3000:3000 node npm run dev` 跑不起来
——官方 node 镜像没有设置 WORKDIR(docker-node 的 Dockerfile 里只有 ENTRYPOINT
与 CMD),工作目录是 /,npm 找不到 /package.json。补 -w /app,顺手引号包住 $(pwd)
并给出确定的标签(本书 4.1、7.10 都要求避免 latest)。
* 12_implementation/12.6:整段用的是 iproute2(ip link add / ip netns exec),中间
却夹了一句 `brctl addif`。bridge-utils 在当前 Debian/Ubuntu/RHEL 默认不再安装,
照抄会在这一行断掉;改成等价的 `ip link set A master docker0`。
* 14.1/14.2 的 `sysctl --system`、14.1 join 节点的 `systemctl enable/start
containerd`、6.4 的 `systemctl restart docker` 都缺 sudo,而紧邻的行(sudo tee、
14.1 第 47 行的 sudo systemctl restart containerd)都带。补齐。
* 15_etcd/demo/cluster/docker-compose.yml 仍留着顶层 `version: "3.6"`,Compose 会
警告 obsolete;11.1 明写「新文件建议直接省略该字段」,15.3 正文内联的同一份文件
也早已省略,只有磁盘上的 demo 落下了。删除后 YAML 仍可正常解析。
* 11.4:「对于 web 项目中的一个 db 容器,可能是 web_db」是 Compose V1 的下划线拼接,
V2 起统一改用连字符,只有 --compatibility 才回到下划线。
* 附录四 CMD 一节四处写成 `CMD ['executable', 'param1']` 单引号,还说「我们建议任何
服务镜像都使用这种形式」。exec 形式是 JSON,单引号解析不出来会退回 shell 形式,本书
7.4 就把 `CMD ['node', 'server.js']` 明确标为「❌ 错误:单引号(JSON 不支持)」。
一并把 `CMD ['PHP', '-a']` 的二进制名改回小写 php。
2026-08-07 23:26:36 -07:00
yeasy
8eabe30dc2
fix(content): correct verified technical facts across cgroups, namespaces, etcd and k8s sections
...
- 12.3: daemon.json has no top-level cgroup-driver key; use exec-opts
native.cgroupdriver (values cgroupfs/systemd) per official dockerd reference
- 12.2: USER namespace is not enabled by default; requires userns-remap
(aligns with 18.1)
- 14.1: cgroup v1 deprecation and kubelet default-fail happen in v1.35, not
v1.36 (per kubernetes.io cgroups doc)
- 15_etcd: maintenance window updated after etcd v3.7.0 release (2026-07-08)
to 3.6/3.7
- 3.9.6: fix dangling sentence order in registry migration note
- tools: add 'from __future__ import annotations' so PEP 604 annotations run
on Python 3.9 (fixes npm test)
2026-07-10 06:13:27 -07:00
yeasy
9fdffa9d91
fix(content): harden Docker practice guide
2026-06-16 21:23:21 -07:00
yeasy
130d03bf65
fix(content): harden dashboard and etcd examples
2026-06-03 00:40:40 -07:00
yeasy
094965e039
修复编辑问题:错别字/语病/术语/标点等 25 处(自动审校)
2026-05-31 22:20:50 -07:00
yeasy
f09e800020
fix(content): harden copy-paste safety examples
2026-05-27 18:17:24 -07:00
yeasy
3a9ee19d22
docs(content): refresh Kubernetes helper versions
2026-05-26 00:45:20 -07:00
yeasy
8b9e4518c8
docs(content): add Mac alternatives, K8s transition guide, CI/CD registry push example
...
- Add OrbStack/Colima comparison table to Mac install chapter (3.7.4)
- Add Docker→K8s concept mapping paragraph to Ch13 intro
- Add KubeKey/RKE2 deployment tool notes to Ch14
- Add production image checklist to Dockerfile chapter summary
- Add build-and-push-to-registry workflow example to GitHub Actions section
- Expand Ch18 security summary with dimension table
2026-05-21 21:33:58 -07:00
yeasy
e17bef96d2
docs(content): update Compose and safety guidance
2026-05-21 20:13:39 -07:00
yeasy
d47afa7e75
docs: harden Docker practice security examples
2026-05-20 15:58:46 -07:00
yeasy
1b651e5f8c
fix(content): refresh Docker and Kubernetes guidance
2026-05-20 09:16:36 -07:00
yeasy
e91fe87822
fix(content): harden kubernetes and signing examples
2026-05-20 08:49:28 -07:00
yeasy
0b8f6e9b60
Refresh metadata and workflows
2026-05-18 07:38:58 -07:00
yeasy
ef5a97fa09
Fix VirtioFS note, cri-socket, componentstatuses, ES version and typo
2026-05-13 08:26:24 +00:00
yeasy
3c5c5911b0
Fix nginx version, IPVS removal, cgroups v2 and Redis config
2026-05-13 08:22:20 +00:00
yeasy
b148d9efa9
Update nginx to 1.30 stable, add IPVS deprecation note
2026-05-02 18:18:48 +00:00
yeasy
9c378b1ef9
Use straight quotes in kubectl annotate examples
2026-04-30 19:18:49 +00:00
yeasy
420a5776ce
Accurate cgroup v2 description, update Actions versions
2026-04-25 20:42:35 +00:00
yeasy
1e9cdeea3f
Update Grafana to v13, add version notes
2026-04-25 15:50:13 +00:00
yeasy
515ba9f64a
Add blank lines before lists per CommonMark
2026-04-25 15:13:27 +00:00
yeasy
9abc1cbb69
Update Kubernetes to v1.36, build-push-action to v7
2026-04-25 15:10:51 +00:00
yeasy
e414d9475b
Update containerd config path for 2.x
2026-04-25 14:22:55 +00:00
yeasy
69fc2234d0
Update nginx version and K8s dashboard date
2026-04-22 12:24:30 -07:00
yeasy
c9c72618c3
Refresh k8s docker versions and references
2026-04-21 20:57:33 -07:00
yeasy
1bed644e5e
Fix mermaid syntax and update K8s taint labels
2026-04-18 15:17:56 -07:00
yeasy
da5867c921
Update Kind v0.31.0 and Flannel v0.28.2
2026-04-18 13:31:43 -07:00
yeasy
422123dd70
Add section numbering and archive notice
2026-04-08 22:40:15 -07:00
yeasy
adee45f7bc
Fix bash comment style to single hash
2026-04-08 22:39:51 -07:00
yeasy
ab2e5651d6
Fix summary section header format
2026-04-04 15:29:10 -07:00
yeasy
e3e21e7a7d
Refresh deployment guidance
2026-03-30 22:48:59 -07:00
yeasy
85f76aa6d9
Fix guide issues
2026-03-28 18:24:46 -07:00
yeasy
63ce0dc3f5
Fix trailing whitespace
2026-03-27 22:20:39 -07:00
yeasy
281316bfec
Update cri-dockerd and Kind versions
2026-03-26 20:04:32 -07:00
yeasy
f8341853cb
Update Dashboard to Helm install method
2026-03-26 20:02:27 -07:00
yeasy
6ff0af0329
Localize remaining external images
2026-03-26 08:51:29 -07:00
yeasy
a8bcfdf225
Localize Kubernetes settings image
2026-03-26 08:46:52 -07:00
yeasy
6479826898
Fix containerd config: use standard paths and socket
...
Replace non-standard /run/cri-containerd/ paths with official
/run/containerd/containerd.sock, simplify service setup to use
default containerd config generation, and add unix:// prefix
to CRI socket URIs per Kubernetes conventions.
2026-03-24 19:03:44 -07:00
yeasy
76c2ae50fe
Add blank lines around headers
2026-03-24 09:27:04 -07:00
yeasy
44b1307277
Remove blank lines after code block markers
2026-03-21 22:36:09 -07:00
yeasy
370949f226
Add blank lines before headers
2026-03-21 12:57:51 -07:00
yeasy
c02a8a41cd
Update container runtime guidance
2026-03-16 20:49:00 -07:00
yeasy
b9c63a5133
Polish Docker workflow formatting
2026-03-16 00:32:49 -07:00
yeasy
470271fa6a
Fix outdated versions, template variables and version inconsistencies
...
- Update K8s Dashboard v2.0.0 to v2.7.0
- Update etcd v3.4.0 to v3.5.17
- Update PostgreSQL 15 to 16 for consistency
- Update Node.js 12 to 20 (current LTS)
- Replace unresolved GitBook template variables (CODE1/2/3/9)
2026-03-14 08:45:42 -07:00
yeasy
a16e0879c0
Improve READMEs and add contribution prompts
2026-03-09 20:04:21 -07:00
yeasy
d6bb6d1c51
Bump Flannel to v0.28.1
2026-03-09 20:04:17 -07:00
baohua
6483d4472c
Fix heading hierarchy
2026-03-05 19:24:01 -08:00
baohua
e8be1c4bbc
Optimize content and fix issues
2026-03-03 19:30:21 -08:00