【发布时间】:2015-08-07 17:47:36
【问题描述】:
我已经在此处和其他网站上阅读了很多关于此问题的信息,但我还没有找到合适的解决方案来提高默认设置为 10GB 的图像大小限制。
一些背景信息。
我正在构建一个 docker 容器: https://bitbucket.org/efestolab/docker-buildgaffer
在 centos 映像之上下载并构建一组一致的库。 (需要大量的时间和空间来构建)
问题是每次我尝试构建它时都会遇到这个错误:
No space left on device
Docker 版本:
Docker version 1.7.1, build 786b29d
码头工人信息:
Containers: 1
Images: 76
Storage Driver: devicemapper
Pool Name: docker-8:7-12845059-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 11.28 GB
Data Space Total: 107.4 GB
Data Space Available: 96.1 GB
Metadata Space Used: 10.51 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.137 GB
Udev Sync Supported: false
Deferred Removal Enabled: false
Data loop file: /home/_varlibdockerfiles/devicemapper/devicemapper/data
Metadata loop file: /home/_varlibdockerfiles/devicemapper/devicemapper/metadata
Library Version: 1.02.82-git (2013-10-04)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.15.9-031509-generic
Operating System: Ubuntu 14.04.2 LTS
CPUs: 8
Total Memory: 15.58 GiB
Name: hdd-XPS-15-9530
ID: 2MEF:IYLS:MCN5:AR5O:6IXJ:3OB3:DGJE:ZC4N:YWFD:7AAB:EQ73:LKXQ
Username: efesto
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
在停止服务并核对 /var/lib/docker 文件夹后, 我一直在通过 docker 启动脚本更新
/lib/systemd/system/docker.service
带有这些标志:
ExecStart=/usr/bin/docker -d --storage-opt dm.basesize=20G --storage-opt dm.loopdatasize=256G -H fd:// $DOCKER_OPTS
并重新启动 docker 服务,但仍然失败并出现同样的错误。
我也一直在阅读这可能是由于我所依赖的原始图像 (centos:6),它可能是用 10GB 限制构建的。
所以我重建了 centos6 映像,并将其用作我的基础,但我确实遇到了同样的错误。
有没有人有可靠的方法让我能够完全构建这个 docker 镜像?
如果有任何其他可能有用的信息,请随时询问。
感谢您的任何回复或建议! L.
.
【问题讨论】:
-
我在你的各种链接中都找不到你的Dockerfile,它在哪里?
-
会不会只是你的磁盘已满?我的意思是 docker 守护进程运行的磁盘?你的
docker info说:Data Space Total: 107.4 GB -
嗨@user2915097,这里是docker文件:bitbucket.org/efestolab/docker-buildgaffer/src/…
-
嗨@h3nrik,一开始也是这么想的,但是有足够的空间。 (注意,/var/lib/docker 也被符号链接到 /home 分区以获得更多空间。)在这里您可以看到该图像不超过 10Gb:
code9dbd4ea10477 19 小时前9.825 GB code -
Dockerfile 的最后两行很奇怪
VOLUME /$OUT_FOLDER CMD cp -Rf -v /opt/* /$OUT_FOLDER && bash通常,Dockerfile 的最后一行是 CMD 或 ENTRYPOINT my_executable
标签: image docker size containers