# 安全清理容器的日志文件/var/lib/docker/containers

从你的 `du -h -d1` 输出可以看出：

- 总共 **82GB** 的空间被 `/var/lib/docker/containers` 占用。
- 其中一个容器目录（ID 为 `b731e62e9a85206148e66cceb202722362f04f444fc9c4aa205866aaf373abe6`）就占用了 **82GB**，几乎全部空间。

这极大概率是该容器的 **日志文件（`b731e62...-json.log`）过大**导致的。

---

## 🔍 第一步：确认是日志文件

进入该目录，查看具体文件：

```bash
ls -lh /var/lib/docker/containers/b731e62e9a85206148e66cceb202722362f04f444fc9c4aa205866aaf373abe6/

```

你应该会看到类似：

```
-rw-r----- 1 root root 82G ... b731e62e9a85206148e66cceb202722362f04f444fc9c4aa205866aaf373abe6-json.log

```

---

## ✅ 安全清理方案（根据容器状态选择）

### 🟢 情况一：该容器**仍在运行**，但你不能停它

> 比如是生产服务，需要保持运行。

**使用 `truncate` 清空日志而不中断容器：**

```bash
truncate -s 0 /var/lib/docker/containers/b731e62e9a85206148e66cceb202722362f04f444fc9c4aa205866aaf373abe6/b731e62e9a85206148e66cceb202722362f04f444fc9c4aa205866aaf373abe6-json.log

```

✅ 空间立即释放，容器继续正常运行。

---

### 🔴 情况二：该容器**已停止或不再需要**

> 比如是测试容器、僵尸容器。

**彻底删除容器（推荐）：**

1. 先查容器名或确认状态：
    
    ```bash
    docker ps -a | grep b731e62
    
    ```
2. 如果确认无用，删除它：
    
    ```bash
    docker rm b731e62e9a85206148e66cceb202722362f04f444fc9c4aa205866aaf373abe6
    
    ```
    
    > 如果还在运行，先 `docker stop <id>` 再删。

✅ 删除后，整个目录（包括 82GB 日志）会自动被 Docker 清理。

---

### 🛡️ 长期预防：配置日志轮转

避免未来再次出现 82GB 日志！

编辑 `/etc/docker/daemon.json`（若不存在则创建）：

```json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}

```

然后重启 Docker：

```bash
systemctl restart docker

```

> ⚠️ 注意：此设置**仅对新启动的容器生效**。已有容器需重建（`docker-compose up -d` 或 `docker run` 重新创建）才能应用。

---

## 🔎 补充建议

- 查看这个容器是什么：
    
    ```bash
    docker inspect b731e62e9a85 --format='{{.Name}} {{.Config.Image}}'
    
    ```
    
    看是否是关键服务（如数据库、日志收集器等）。有些应用（如未配置的日志服务、调试容器）会疯狂输出日志。
- 如果是 `fluentd`、`logstash`、`promtail` 或自研程序，检查其日志级别（是否误设为 `DEBUG`）。

---

## ✅ 总结操作（推荐顺序）

1. **先清空日志释放空间**（无论容器是否运行）：
    
    ```bash
    truncate -s 0 /var/lib/docker/containers/b731e62e9a85206148e66cceb202722362f04f444fc9c4aa205866aaf373abe6/*-json.log
    
    ```
2. **决定是否保留该容器**：
    
    
    - 不需要 → `docker rm`
    - 需要 → 未来重建时应用日志限制
3. **配置全局日志轮转**，防止复发。

---

如果你告诉我这个容器是什么（运行什么服务），我可以给出更具体的建议（比如是否安全删除、如何调低日志级别等）。