我在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

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

以下是卡尔的建议:

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


当前回答

我在GCP mashine上遇到了这个问题。没有一种修剪方法对我有效。/var/lib/docker仍然重约160gb。然后我停了下来 服务docker停止删除docker缓存文件夹。

Sudo rm -rf /var/lib/docker。重新启动docker服务后,这个删除的文件夹被重新创建为明确的docker系统文件夹。当然,我丢失了所有的docker数据,但释放了磁盘空间。

其他回答

在我的案例中,安装ubuntu服务器18.04.1(出于某种奇怪的原因)创建了一个LVM逻辑卷,大小只有4gb,而不是750gb。 因此,当拉图像时,我会得到这个“设备上没有空间”错误。 解决方法很简单:

lvextend -l 100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

如果它只是Docker的测试安装(即不是生产),并且你不关心做核清洁,你可以:

清洁所有容器: docker ps -a | sed '1 d' | awk '{print $1}' | xargs -L1 docker rm

清除所有图像: docker images -a | sed '1 d' | awk '{print $3}' | xargs -L1 docker rmi -f

同样,我在开发Docker的ec2实例中使用了这个方法,而不是在任何严肃的QA或生产路径中使用。伟大的事情是,如果你有你的Dockerfile(s),它很容易重建或docker拉。

$ docker rm $(docker ps -aq)

这对我很有效

docker system prune 

最新版本似乎是更好的选择

我进入docker设置并更改了可用的图像空间。在使用docker build创建新映像时达到了极限。所以我增加了可用的数量。

你的cgroups已经启用了cpuset控制器。这个控制器在NUMA环境中非常有用,它允许精细地指定允许运行哪个CPU/内存库的任务。

默认情况下是强制的cpuset。Mems和cpuset。cpu没有设置,这意味着“没有空间留给”您的任务,因此出现错误。

解决这个问题最简单的方法是启用cgroup。将根组中的Clone_children改为1。对你来说,应该是

echo 1 > /sys/fs/cgroup/docker/cgroup.clone_children

它基本上会指示系统自动初始化容器的cpuset。Mems和cpuset。来自父cgroup的cpu。