我在Debian 7机器上安装docker的方法如下

$ echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
$ curl -sSL https://get.docker.com/ubuntu/ | sudo sh

之后,当我第一次尝试创建一个图像时,它失败了,出现以下错误

 time="2015-06-02T14:26:37-04:00" level=info msg="[8] System error: write /sys/fs/cgroup/docker/01f5670fbee1f6687f58f3a943b1e1bdaec2630197fa4da1b19cc3db7e3d3883/cgroup.procs: no space left on device"

这是docker信息

Containers: 2
Images: 21
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 25
Dirperm1 Supported: true
Execution Driver: native-0.2
Kernel Version: 3.16.0-0.bpo.4-amd64
Operating System: Debian GNU/Linux 7 (wheezy)
CPUs: 2
 Total Memory: 15.7 GiB


WARNING: No memory limit support
 WARNING: No swap limit support

如何增加内存?系统配置存储在哪里?

以下是卡尔的建议:

当我摆脱了所有的图像和容器,它确实释放了一些空间和图像构建运行更长的时间之前失败与相同的错误。问题是,这指的是哪个空间我怎么配置它?


当前回答

那么多关于修剪声明的帖子。因为这个命令确实会清理docker文件,如果实际存储空间被占用,它不会修复您的系统。对我来说,问题是服务器的存储空间太满了。因此,我有两个选择。

选项1:清理现有空间

运行别人说过的所有系统修剪命令。 df -H,剩下多少空间? 用du——block-size=M -a / | sort -n -r | head -n 20检查是什么占用了系统这么多的空间,这将显示20个最大的文件。 删除文件或将其移出系统。

选择2:获得更多空间

为硬盘驱动器增加更多空间,然后扩展。如果你像我一样只有一个HD,我必须挂载名为“gparted”的操作系统并扩展驱动器。

其他回答

1. 移除容器:

$ docker rm $(docker ps -aq)

2. 删除图片:

$ docker rmi $(docker images -q)

你可以这样做,而不是执行步骤1和2:

Docker系统修剪

该命令将删除:

所有停止的集装箱 未被至少一个容器使用的所有卷 所有网络不被至少一个容器使用 所有悬挂的图像

似乎有几种方式可以发生这种情况。我遇到的问题是,docker磁盘映像已经达到其最大大小(docker Whale -> Preferences -> disk,如果你想查看它在OSX中的大小)。

我提高了极限,然后就可以出发了。我相信清理未使用的图像也会起作用。

如果你使用Docker桌面,你可以通过Docker的首选项在高级设置中增加磁盘镜像大小。

以下是macOS的截图:

(docker images -f " hanging =true" -q) 删除不需要的卷 删除未使用的图像 移除未使用的容器

目前的最佳实践是:

docker system prune

在接受结果之前,请注意该命令的输出:

WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all dangling build cache

Are you sure you want to continue? [y/N]

换句话说,继续执行这个命令是永久的。请记住,最佳实践是将停止的容器视为短暂的,即您应该使用Docker设计您的工作,不要保留这些停止的容器。如果你不主动调试容器,你可以考虑在运行时使用——rm标志。

请务必阅读这个答案,回复:卷

如果docker系统修剪不适合你,你可能也会对这个答案感兴趣。