Docker实例无法再运行图像,无法回收可用空间

时间:2015-10-23 00:47:19

标签: linux docker rhel

我正在尝试在docker中启动任何已保存的容器,但无法执行此操作。我已经开始从守护进程获取错误响应:

  

运行DeviceCreate(createSnapDevice)时出错dm_task_run失败

这是在提交了一个相对较大的docker镜像后开始发生的,它似乎填满了所有可用的docker数据空间,即使我在主机上有很多空间。现在,即使删除了大图像,我也无法释放停靠者数据空间。 Docker无法回收空间。我也尝试了下面提到的修复程序,以便我可以启动docker容器但是没有成功。有什么办法可以修复现有的Docker再次运行图像吗?

相关问题:Can't run Docker container due device mapper error

这是我的主机配置。使用的数据空间和总数已达到最大值且空闲时间为0.

# docker info
=========================================================
Containers: 49
Images: 23
Storage Driver: devicemapper
 Pool Name: docker-8:3-4998488-pool
 Pool Blocksize: 65.54 kB
 Backing Filesystem: extfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 107.4 GB
 Data Space Total: 107.4 GB
 Data Space Available: 0 B
 Metadata Space Used: 60.36 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.087 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.93-RHEL7 (2015-01-28)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-229.el7.x86_64
Operating System: Red Hat Enterprise Linux
CPUs: 4
Total Memory: 7.64 GiB

docker version
=========================================================

Client:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:08:45 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:08:45 UTC 2015
 OS/Arch:      linux/amd64

2 个答案:

答案 0 :(得分:1)

运行

docker system df

将告诉您磁盘使用情况和可回收空间。

要释放空间并保留图像,请执行以下操作:

删除卷:

docker volume rm $(docker volume ls --format {{.ID}})

删除停止的容器:

docker rm $(docker ps -aq)

要清洁一切 可选删除所有图像/容器/卷/网络

docker system prune -af

答案 1 :(得分:0)

在RHEL docker主机上,我可以回收空间并启动docker镜像的唯一方法是实际删除devicemapper / data。没有其他docker命令来删除容器/图像/卷似乎工作。我将我想要的图像备份到焦油球并进行了移除以使其再次工作。