milvus容器restart不成功,但docker仍在running问题排查
问题原因是因为
docker-compose启动的一起的服务中,etcd没事,minio没事
standalone这个容器里面挂在的日志盘在服务器存储有几十G,把存储撑爆了。
1.进各个容器看报错
docker-compose -f docker-compose-standalone.yml logs --tail=100 milvus-standalone
2.stop restart ,别docker-compose down会丢数据
Error response from daemon: cannot restart container 3f0924907ff96d2c9dfbd313db8364c3a04647cebab518e7721135b76bea2d9e: mkdir/var/lib/docker/overlay2/d2fbf25a4a9512b190040b5098a0afd7c492194b166870bc177e5df3e4766db8/merged: no space left on device报错
3.查日志步骤
科学删除 Docker 日志的三步法:先看、再限、后清。
1. 先看——找出“日志大户”
执行下面命令,按大小列出所有容器日志:
```bash
du -sh /var/lib/docker/containers/*/*-json.log | sort -rh
```
一眼就能看到哪些容器日志最占空间。
2. 再限——给日志设“天花板”
编辑 `/etc/docker/daemon.json`,写入:
```json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
```
重启 Docker:
```bash
sudo systemctl restart docker
```
以后所有新建容器的日志单文件最大 10 MB,最多保留 3 个轮转文件,从根本上防止无限增长。
3. 后清——安全清空现有日志
对正在运行的容器,用 `truncate` 清空,不影响写入:
```bash
sudo truncate -s 0 /var/lib/docker/containers/CONTAINER_ID/*-json.log
```
想一次清理全部,可批量执行:
```bash
sudo find /var/lib/docker/containers -name "*-json.log" -exec truncate -s 0 {} \;
```
4.清一下
指定目录下启动milvus服务,docker-compose up -d即可