macos - Docker 拉取错误 : no space left on device

标签 macos ubuntu docker

在执行 docker pull 时我收到此错误消息

Handler for POST /images/create returned error: ApplyLayer exit status 1 stdout: stderr: write XXXX: no space left on device

我检查了磁盘空间和 Inode,我有足够的空间。无论如何,我尝试释放一些额外的空间和 inode 。尽管如此,错误总是落在同一个文件上(这排除了潜在的空间问题)。

要拉取的图像是~12Gb

Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda4
3,0M 295K 2,7M 10% /

Filesystem Size Used Avail Use% Mounted on /dev/sda4
47G 15G 30G 34% /

我尝试从另一台计算机导出图像并在导致问题的计算机上导入它。但是我得到了“设备上没有剩余空间”的相同错误

我尝试删除所有图像,甚至完全删除/var/lib/docker,重新启动 docker 守护进程,但没有任何运气。

在安装了 ubuntu 14.02 的 MacBook 12.11 上运行。

kernel: 3.18.0-031800-generic #201412071935 SMP Mon Dec 8 00:36:34 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

docker 版本

Docker version 1.7.1, build 786b29d

docker 信息

Containers: 2
Images: 85
Storage Driver: devicemapper
 Pool Name: docker-8:4-920131-pool
 Pool Blocksize: 65.54 kB
 Backing Filesystem: extfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 6.185 GB
 Data Space Total: 107.4 GB
 Data Space Available: 33.83 GB
 Metadata Space Used: 8.061 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.139 GB
 Udev Sync Supported: false
 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.82-git (2013-10-04)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.18.0-031800-generic
Operating System: Ubuntu 14.04.2 LTS
CPUs: 8
Total Memory: 15.58 GiB
Name: geb
ID: TTQN:73Y5:IU35:CK53:UELX:HPRQ:BKMM:ZNNM:O56G:6WL3:RZXE:NV4H
WARNING: No swap limit support

最佳答案

devicemapper 在各种不同的内核和操作系统上给我带来了无数问题。问题 here .

Jerome Petazzo 有一些 broader recommendations - 尽管 BTRFS 也有/正在进行 serious问题,它已经从以前的部署中退出生产(以及 DeviceMapper 和 Ubuntu 12.04 上的 AUFS)。

我对存储驱动的偏好是overlay,它自内核3.18起可用(进一步的意见expressed here):

Storage Driver: overlay
 Backing Filesystem: extfs

用 ( more here ) 更新 /etc/default/docker:

DOCKER_OPTS="-s overlay"

(确保您只有一个 DOCKER_OPTS - 该文件并不像人们预期的那样支持 BASH 语法)

编辑: 我似乎记得 devicemapper 修复是像您所做的那样删除所有内容,然后重新启动。

关于macos - Docker 拉取错误 : no space left on device,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33421156/

相关文章:

sed - docker run sed 不起作用

c++ - 使用rvm安装ruby时出错

docker - 如何将我的测试结果从 docker 容器导出到主机上的目录

node.js - Jenkins 内的 Docker 代理 - npm "cannot find module"

VMWare 终端中的 Ubuntu Server 停止更新

php - 适用于 Ubuntu 的 WYSIWYG Web 编辑器(php、CSS、HTML、Javascript)好吗?

c++ - 如何在 Ubuntu 16.04 中安装 MySql Connector/C++

macos - Mac OS-X 上的颜色选择器选择了错误的颜色

windows - 从父 Windows 操作系统调用在 mac vmware 上运行的应用程序

objective-c - Mac OSX - 如何使用 Cocoa 甚至纯 C 函数获取代理配置?