遇到了大问题,我的所有inode似乎都被使用了。 我已经清理了所有未使用的卷 清理所有容器和图像 用命令 - >码头修剪
但似乎它仍然充满:
Filesystem Inodes IUsed IFree IUse% Mounted on
none 3200000 3198742 1258 100% /
tmpfs 873942 16 873926 1% /dev
tmpfs 873942 13 873929 1% /sys/fs/cgroup
/dev/sda1 3200000 3198742 1258 100% /images
shm 873942 1 873941 1% /dev/shm
tmpfs 873942 1 873941 1% /sys/firmware
码头信息
Containers: 5
Running: 3
Paused: 0
Stopped: 2
Images: 23
Server Version: 17.06.1-ce
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 53
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170
runc version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2
init version: 949e6fa
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 6.668GiB
Name: serveur-1
ID: CW7J:FJAH:S4GR:4CGD:ZRWI:EDBY:AYBX:H2SD:TWZO:STZU:GSCX:TRIC
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
我认为唯一可以做到这一点的是我在这台机器上做的构建。 此版本运行带有许多文件的npm安装。 这些文件可以留在服务器上吗? 我有没有机会删除这些临时文件?
答案 0 :(得分:3)
系统中是否还有悬空卷?如果你有悬空卷,它可能会占用你的磁盘空间。
列出所有悬空卷
docker volume ls -q -f dangling=true
删除所有悬空卷
docker volume rm `docker volume ls -q -f dangling=true`
答案 1 :(得分:1)
发现错误,
这似乎是Docker 17.06.1-ce错误。
此版本似乎无法正确删除图像,并将文件保留在/var/lib/docker/aufs/mnt/
中
所以只需升级到新的docker版本,这样就可以了。
现在df告诉我
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 51558236 3821696 45595452 8% /
udev 10240 0 10240 0% /dev
tmpfs 1398308 57696 1340612 5% /run
tmpfs 3495768 0 3495768 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 3495768 0 3495768 0% /sys/fs/cgroup
这样更好:)
答案 2 :(得分:1)
在我的情况下是dangling build cache
,因为删除悬空的图像不能解决问题。
可以通过以下命令删除此缓存:docker system prune --all --force
,但请注意,也许您仍然需要一些卷或图像。
答案 3 :(得分:0)
我有同样的问题。 Jenkins是否在带有附加卷的Docker内部运行。几周后,詹金斯告诉我“ npm WARN tar ENOSPC:设备上没有剩余空间”。经过一番谷歌搜索后,我发现所有索引节点都使用sudo df -ih
。使用sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
,我可以用完所有inode来定位该文件夹,这是npm的特定版本。删除了该文件夹,现在我可以再去一次。
答案 4 :(得分:0)
这也可能是许多容器停止的结果,例如,如果正在运行一个使用该容器的cron作业,并且使用的docker run
命令行不包含--rm
-在这种情况下,每次cron调用都会在文件系统上留下一个停止的容器。
在这种情况下,docker info
的输出将在Server-> Containers-> Stopped下显示一个高数字。
要解决这个问题:
docker container prune
--rm
命令行中添加docker run
。