【问题标题】:docker and image size limit泊坞窗和图像大小限制
【发布时间】: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:code 9dbd4ea10477 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


【解决方案1】:

感谢@user2915097 的测试,我一直在更新内核版本3.16.0,安装了内核附加组件,并删除并重新安装了docker。 这个问题似乎可以通过 devicemapper 解决,现在我得到的 docker 命令没有任何变化:

Containers: 0
Images: 94
Storage Driver: aufs
 Root Dir: /home/_varlibdockerfiles/aufs
 Backing Filesystem: extfs
 Dirs: 94
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.16.0-45-generic
Operating System: Ubuntu 14.04.3 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

它最终构建了 > 10GB 的图像。 L.

【讨论】:

  • 我也遇到了这个问题。有没有机会显示实际的修复?
  • 您好,很抱歉耽搁了,没有真正的实际修复,只是为了更新内核版本,并重新安装了 docker。就是这样,我有一个旧版本。
【解决方案2】:

修改 docker daemon 启动参数后,执行以下操作

systemctl daemon-reload
systemctl stop docker
rm -rf /var/lib/docker/*
systemctl start docker

这将删除您所有的图像,请确保您在之前保存它们

例如docker save -o something.tar.gz image_name

并在启动 docker 后重新加载它们

例如docker load -i something.tar.gz

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2021-04-29
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多