mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-25 03:05:32 +00:00
Remove blank lines after code block markers
This commit is contained in:
@@ -28,7 +28,6 @@ flowchart LR
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 12.3.2 cgroups 的历史
|
||||
@@ -62,7 +61,6 @@ Docker 提供了丰富的参数来配置容器的资源限制,主要包括内
|
||||
#### 内存限制
|
||||
|
||||
```bash
|
||||
|
||||
## 限制容器最多使用 512MB 内存
|
||||
|
||||
$ docker run -m 512m myapp
|
||||
@@ -75,7 +73,6 @@ $ docker run -m 512m --memory-swap 1g myapp
|
||||
|
||||
$ docker run --memory-reservation 256m myapp
|
||||
```
|
||||
|
||||
| 参数 | 说明 |
|
||||
|------|------|
|
||||
| `-m` / `--memory` | 硬限制 (超过会 OOM Kill)|
|
||||
@@ -86,7 +83,6 @@ $ docker run --memory-reservation 256m myapp
|
||||
#### CPU 限制
|
||||
|
||||
```bash
|
||||
|
||||
## 限制使用 1.5 个 CPU 核心
|
||||
|
||||
$ docker run --cpus=1.5 myapp
|
||||
@@ -99,7 +95,6 @@ $ docker run --cpuset-cpus="0,1" myapp
|
||||
|
||||
$ docker run --cpu-shares=512 myapp
|
||||
```
|
||||
|
||||
| 参数 | 说明 |
|
||||
|------|------|
|
||||
| `--cpus` | 限制 CPU 核心数 (如 1.5)|
|
||||
@@ -110,7 +105,6 @@ $ docker run --cpu-shares=512 myapp
|
||||
#### 磁盘 I/O 限制
|
||||
|
||||
```bash
|
||||
|
||||
## 限制设备写入速度为 10MB/s
|
||||
|
||||
$ docker run --device-write-bps /dev/sda:10mb myapp
|
||||
@@ -123,22 +117,18 @@ $ docker run --device-read-bps /dev/sda:10mb myapp
|
||||
|
||||
$ docker run --device-write-iops /dev/sda:100 myapp
|
||||
```
|
||||
|
||||
#### 进程数限制
|
||||
|
||||
```bash
|
||||
|
||||
## 限制最多 100 个进程
|
||||
|
||||
$ docker run --pids-limit=100 myapp
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 12.3.5 查看容器资源使用
|
||||
|
||||
```bash
|
||||
|
||||
## 实时监控所有容器的资源使用
|
||||
|
||||
$ docker stats
|
||||
@@ -154,7 +144,6 @@ $ docker stats mycontainer
|
||||
|
||||
$ docker inspect mycontainer --format '{{json .HostConfig}}' | jq
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 12.3.6 资源限制的效果
|
||||
@@ -162,7 +151,6 @@ $ docker inspect mycontainer --format '{{json .HostConfig}}' | jq
|
||||
#### 内存超限
|
||||
|
||||
```bash
|
||||
|
||||
## 启动限制 100MB 内存的容器
|
||||
|
||||
$ docker run -m 100m stress --vm 1 --vm-bytes 200M
|
||||
@@ -177,11 +165,9 @@ abc123 Exited (137) 5 seconds ago hopeful_darwin
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
#### CPU 限制验证
|
||||
|
||||
```bash
|
||||
|
||||
## 不限制 CPU
|
||||
|
||||
$ docker run --rm stress --cpu 4
|
||||
@@ -196,7 +182,6 @@ $ docker run --rm --cpus=1 stress --cpu 4
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 12.3.7 cgroups v1 vs v2
|
||||
@@ -218,13 +203,11 @@ Docker 19.03+ 默认优先使用 cgroups v2(如果系统支持),提供更
|
||||
"cgroup-driver": "systemd"
|
||||
}
|
||||
```
|
||||
|
||||
常见的 `cgroup-driver` 值包括 `systemd` (推荐) 和 `cgroupfs`。重启 Docker 守护进程后生效。
|
||||
|
||||
#### 检查系统使用的版本
|
||||
|
||||
```bash
|
||||
|
||||
## 查看 cgroup 版本
|
||||
|
||||
$ mount | grep cgroup
|
||||
@@ -238,7 +221,6 @@ $ cat /proc/filesystems | grep cgroup
|
||||
nodev cgroup
|
||||
nodev cgroup2
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 12.3.8 在 Compose 中设置限制
|
||||
@@ -258,7 +240,6 @@ services:
|
||||
cpus: '0.25'
|
||||
memory: 256M
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 12.3.9 最佳实践
|
||||
@@ -268,22 +249,18 @@ services:
|
||||
#### 1. 始终设置内存限制
|
||||
|
||||
```bash
|
||||
|
||||
## 防止 OOM 影响宿主机
|
||||
|
||||
$ docker run -m 1g myapp
|
||||
```
|
||||
|
||||
#### 2. 为关键应用设置 CPU 保证
|
||||
|
||||
```bash
|
||||
$ docker run --cpus=2 --cpu-shares=2048 critical-app
|
||||
```
|
||||
|
||||
#### 3. 监控资源使用
|
||||
|
||||
```bash
|
||||
|
||||
## 配合 Prometheus + cAdvisor 监控
|
||||
|
||||
$ docker run -d --name cadvisor \
|
||||
@@ -293,5 +270,4 @@ $ docker run -d --name cadvisor \
|
||||
-v /var/lib/docker:/var/lib/docker:ro \
|
||||
ghcr.io/google/cadvisor
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user