mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 08:27:25 +00:00
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)
This commit is contained in:
@@ -28,7 +28,7 @@ flowchart LR
|
||||
|
||||
### 12.2.2 Namespace 的类型
|
||||
|
||||
Linux 内核(5.6+)共提供 8 种 Namespace。Docker 容器默认使用其中 7 种(不含 Time):
|
||||
Linux 内核(5.6+)共提供 8 种 Namespace。Docker 容器默认启用其中的 PID、NET、MNT、UTS、IPC(在 cgroup v2 主机上还包括 Cgroup);USER Namespace 默认**不**启用,需要通过 `daemon.json` 的 `userns-remap` 显式开启(详见第 18.1 节),Time Namespace 则未被使用:
|
||||
|
||||
| Namespace | 隔离内容 | 容器中的效果 |
|
||||
|-----------|---------|-------------|
|
||||
@@ -37,7 +37,7 @@ Linux 内核(5.6+)共提供 8 种 Namespace。Docker 容器默认使用其
|
||||
| **MNT** | 挂载点 | 独立的文件系统视图,自己的根目录 |
|
||||
| **UTS** | 主机名 | 独立的主机名和域名 |
|
||||
| **IPC** | 进程间通信 | 独立的信号量、消息队列、共享内存 |
|
||||
| **USER** | 用户/组 ID | 容器内的 root 可以映射为宿主机的普通用户 |
|
||||
| **USER** | 用户/组 ID | 容器内的 root 可以映射为宿主机的普通用户(默认不启用,需 `userns-remap` 显式开启)|
|
||||
| **Cgroup** | Cgroup 根目录 | 隔离 cgroup 层级视图 (Linux 4.6+)|
|
||||
| **Time** | 系统时钟 | 隔离 CLOCK_MONOTONIC 和 CLOCK_BOOTTIME (Linux 5.6+)|
|
||||
|
||||
|
||||
@@ -198,14 +198,15 @@ $ docker run --rm --cpus=1 stress --cpu 4
|
||||
|
||||
#### Docker 对 cgroups v2 的支持
|
||||
|
||||
Docker 20.10+ 开始支持 cgroups v2(如果系统支持),提供更好的性能和资源隔离。如果需要明确控制或回退到 v1,可以通过 Docker 守护进程配置文件 `/etc/docker/daemon.json` 修改 `cgroup-driver` 参数:
|
||||
Docker 20.10+ 开始支持 cgroups v2(如果系统支持),提供更好的性能和资源隔离。cgroup 驱动可以通过 Docker 守护进程配置文件 `/etc/docker/daemon.json` 的 `exec-opts` 配置项指定:
|
||||
|
||||
```json
|
||||
{
|
||||
"cgroup-driver": "systemd"
|
||||
"exec-opts": ["native.cgroupdriver=systemd"]
|
||||
}
|
||||
```
|
||||
常见的 `cgroup-driver` 值包括 `systemd` (推荐) 和 `cgroupfs`。重启 Docker 守护进程后生效。
|
||||
|
||||
`native.cgroupdriver` 仅支持 `systemd` 和 `cgroupfs` 两个取值;若不指定,cgroup v1 主机默认使用 `cgroupfs`,带 systemd 的 cgroup v2 主机默认使用 `systemd`。重启 Docker 守护进程后生效。
|
||||
|
||||
#### 检查系统使用的版本
|
||||
|
||||
|
||||
Reference in New Issue
Block a user