如果设备上没有剩余空间,如何运行“docker”服务?

如果设备上没有剩余空间,如何运行“docker”服务?

我已经配置好了"data-root": "/mnt/docker-overlay"并且我的/mnt/docker-overlay卷没有空间。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb         40G   40G     0 100% /mnt/docker-overlay

我无法运行docker system prune或类似操作,因为 docker 服务由于空间问题而退出。

如何docker恢复服务并执行清理?

答案1

我找到了这个解决方法:检测哪个容器占用了空间以及原因。就我而言,我清理了日志文件

# cd /mnt/docker-overlay/containers
# du -h -d 1
# cd ./b16..zx
# ls -la
total 7207732
drwx--x---  4 root root       4096 May 27  2023 .
drwx--x--- 33 root root       4096 Jan 26  2023 ..
-rw-r-----  1 root root 7380619264 Dec 21 03:28 b16..zx-json.log
drwx------  2 root root       4096 Jan 16  2023 checkpoints
-rw-------  1 root root       4651 May 27  2023 config.v2.json
-rw-r--r--  1 root root       1594 May 27  2023 hostconfig.json
-rw-r--r--  1 root root         13 May 27  2023 hostname
-rw-r--r--  1 root root        177 May 27  2023 hosts
drwx--x---  2 root root       4096 Jan 16  2023 mounts
-rw-r--r--  1 root root         53 May 27  2023 resolv.conf
-rw-r--r--  1 root root         71 May 27  2023 resolv.conf.hash

# : > b16..zx-json.log

尽管我将日志限制为仅 500 米,但它占用了这么多磁盘空间,这很奇怪。

# cat /etc/docker/daemon.json 
{
  "debug": true,
  "data-root": "/mnt/docker-overlay",
  "features":
    { "buildkit": true },
  "log-opts": {
    "max-size": "500m",
    "max-file": "5"
  }
}

更新型多巴胺
重要提示:更改日志选项后,我们必须重新创建现有容器。否则它们将继续占用磁盘空间: 评论1评论2

检查您的容器是否使用正确的选项:docker inspect <container-name> | grep -B 0 -A 6 LogConfig

相关内容