Docker no space left on device
Docker 启动抛出异常:设备空间不足Error response from daemon: Cannot start container xxx: write /var/lib/docker/containers/xxxxx/hash281480960: no space left on deviceError: failed to start containers: [xxx]1....
Docker 启动抛出异常:设备空间不足
Error response from daemon: Cannot start container xxx: write /var/lib/docker/containers/xxxxx/hash281480960: no space left on device
Error: failed to start containers: [xxx]
1.开始排查:df -h
[root@iZbp13ks1ssZ root]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 40G 0 100% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/vdb1 493G 289G 179G 62% /mnt
如图系统盘40G被占用完,基本可以确定启动异常原因和系统盘有关系
2.继续排查:docker info
[root@iZbp13ks1ssevbZ bin]# docker info
Containers: 1
Images: 28
Storage Driver: devicemapper
Pool Name: docker-252:1-787932-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 1.225 GB
Data Space Total: 107.4 GB
Data Space Available: 16.78 MB
Metadata Space Used: 2.073 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 16.78 MB
Udev Sync Supported: true
Deferred Removal Enabled: false
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.117-RHEL6 (2016-12-13)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 2.6.32-573.22.1.el6.x86_64
Operating System: <unknown>
CPUs: 8
Total Memory: 15.58 GiB
Name: iZbp13ks1ssevb4354g66kZ
ID: CYHH:DY6E:AMHX:YIR5:J4ZZ:NVPV:MRFI:REPX:CYOV:CAY6:PCU3:3ZTA
如图可以分析出可用磁盘容量 Data Space Available、 Metadata Space Available 仅剩 16.78 MB,所有导致没有足够的空间进行加载启动docker镜像。
3.解决办法
a.清理无效数据文件,释放磁盘空间(我这边采用的清除日志,大概35G日志)
找到容器位置,查看容器下文件夹总大小,大概34G,很明显不正常
[root@iZbp13ks1ssevb4354g66kZ docker]# cd /var/lib/docker/containers/xxxxx/
[root@iZbp13ks1ssevb4354g66kZ xxxxx]# du -h
34G .
具体查看哪一个文件占用的较大空间
[root@iZbp13ks1ssevb4354g66kZ xxxxx]# ll -H
总用量 35472804
-rw------- 1 root root 36324085760 1月 10 10:07 xxxxx-json.log
-rw-r--r-- 1 root root 0 1月 10 10:20 config.json
-rw------- 1 root root 0 1月 10 10:18 hash021440780
-rw------- 1 root root 0 1月 10 10:20 hash281480960
-rw------- 1 root root 0 1月 10 10:10 hash330376280
-rw------- 1 root root 0 1月 10 10:13 hash415263050
-rw------- 1 root root 0 1月 10 10:19 hash741158942
-rw------- 1 root root 0 1月 10 10:09 hash834270948
-rw------- 1 root root 71 1月 10 10:09 hash942917046
-rw-r--r-- 1 root root 658 1月 7 09:16 hostconfig.json
-rw-r--r-- 1 root root 13 1月 7 09:16 hostname
-rw-r--r-- 1 root root 177 1月 10 10:20 hosts
-rw-r--r-- 1 root root 0 1月 10 10:09 resolv066146547
-rw-r--r-- 1 root root 0 1月 10 10:13 resolv093990945
-rw-r--r-- 1 root root 0 1月 10 10:09 resolv319454621
-rw-r--r-- 1 root root 0 1月 10 10:10 resolv568725975
-rw-r--r-- 1 root root 0 1月 10 10:18 resolv593039099
-rw-r--r-- 1 root root 0 1月 10 10:19 resolv620168933
-rw-r--r-- 1 root root 0 1月 10 10:20 resolv716462175
-rw-r--r-- 1 root root 86 1月 7 09:16 resolv.conf
-rw------- 1 root root 71 1月 7 09:16 resolv.conf.hash
最终定位到xxxxx-json.log文件,经 vi 查阅该日志可清除,rm 清除后 docker info
[root@iZbp13ks1ssevb4354g66kZ xxxxx]# docker info
Containers: 1
Images: 28
Storage Driver: devicemapper
Pool Name: docker-252:1-787932-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 1.225 GB
Data Space Total: 107.4 GB
Data Space Available: 36.34 GB
Metadata Space Used: 2.073 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.145 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.117-RHEL6 (2016-12-13)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 2.6.32-573.22.1.el6.x86_64
Operating System: <unknown>
CPUs: 8
Total Memory: 15.58 GiB
Name: iZbp13ks1ssevb4354g66kZ
ID: CYHH:DY6E:AMHX:YIR5:J4ZZ:NVPV:MRFI:REPX:CYOV:CAY6:PCU3:3ZTA
如图可以磁盘可以空间为 36.34 GB,查看系统磁盘使用率 df -h
[root@iZbp13ks1ssevb4354g66kZ xxxxx]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 5.5G 32G 15% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/vdb1 493G 289G 179G 62% /mnt
如图系统盘使用率达到15%,足够空间启动容器,docker start xxxxx 正常。
此方法比较low,但也是及时恢复系统的一个办法,系统恢复正常之后可再进行目录更换,增加磁盘空间等
b.修改docker配置文件,修改data路径
待后续...
更多推荐
所有评论(0)