Fix cgroups, VOLUME, and tmpfs descriptions

This commit is contained in:
yeasy
2026-03-09 18:33:18 -07:00
parent 3d33e00802
commit a980e34276
3 changed files with 16 additions and 11 deletions

View File

@@ -103,7 +103,7 @@ VOLUME /data
RUN echo "hello" > /data/test.txt RUN echo "hello" > /data/test.txt
``` ```
**原因**VOLUME 指令之后Docker 将该目录视为外部挂载点不再记录对它的修改 **原因**在构建过程中VOLUME 指令会为该目录创建一个临时的匿名卷后续 RUN 指令对该目录的写入实际发生在这个临时卷中而非镜像层当该 RUN 指令结束后临时卷被丢弃因此写入的内容不会保存到最终镜像中注意这与容器运行时创建的匿名卷是不同的运行时创建的卷会在容器生命周期内持续存在
#### 正确做法 #### 正确做法

View File

@@ -10,16 +10,20 @@
### 8.3.2 基本用法 ### 8.3.2 基本用法
```bash 使用 `--mount` 语法推荐
$ docker run --tmpfs /run:rw,noexec,nosuid,size=64m nginx
```
也可以使用 `--mount` 语法
```bash ```bash
$ docker run --mount type=tmpfs,destination=/run,tmpfs-size=67108864 nginx $ docker run --mount type=tmpfs,destination=/run,tmpfs-size=67108864,tmpfs-mode=1770 nginx
``` ```
也可以使用 `--tmpfs` 简写语法
```bash
$ docker run --tmpfs /run:size=64m nginx
```
> **注意**`--tmpfs` 支持的选项有限主要为 `size` `mode`如果需要更精细的控制 `noexec``nosuid`推荐使用 `--mount` 语法并通过 `tmpfs-mode` 参数设置权限
### 8.3.3 注意事项 ### 8.3.3 注意事项
- 容器停止后`tmpfs` 数据会丢失 - 容器停止后`tmpfs` 数据会丢失

View File

@@ -35,10 +35,11 @@ flowchart LR
| 时间 | 事件 | | 时间 | 事件 |
|------|------| |------|------|
| 2006 | Google 工程师提出 cgroups 概念 | | 2006 | Google 工程师提出 "process containers" 概念 |
| 2008 | Linux 2.6.24 正式支持 cgroups v1 | | 2007 | 为避免与 Linux 容器概念混淆更名为 "control groups" (cgroups) |
| 2008 | Linux 2.6.242008年1月正式合并 cgroups v1 |
| 2016 | Linux 4.5 引入 cgroups v2 | | 2016 | Linux 4.5 引入 cgroups v2 |
| 现在 | Docker 默认使用 cgroups v2 (如系统支持)| | 现在 | Docker 在宿主机支持 cgroups v2 时会自动使用 v2否则回退到 v1 |
--- ---
@@ -265,7 +266,7 @@ $ docker run -d --name cadvisor \
-v /var/run:/var/run:ro \ -v /var/run:/var/run:ro \
-v /sys:/sys:ro \ -v /sys:/sys:ro \
-v /var/lib/docker:/var/lib/docker:ro \ -v /var/lib/docker:/var/lib/docker:ro \
gcr.io/cadvisor/cadvisor ghcr.io/google/cadvisor
``` ```
--- ---