Docker构建导致Windows 10上“设备上没有剩余空间”

时间:2017-02-19 19:35:57

标签: docker dockerfile docker-for-windows docker-windows docker-desktop

当我想在Windows上构建我的图像时,我遇到了一个奇怪的问题。我没有使用 Docker 来做其他事情,因此可以认为安装是新鲜的。根本没有卷,也没有图像。

当我尝试从我的Dockerfile构建我的应用程序时,它完成了这个错误

docker build ./
Sending build context to Docker daemon   1.4 GB
Error response from daemon: Error processing tar file(exit status 1): write /.bowerrc: no space left on device

我已经读过你可以增加docker的基础,但是我还没有找到适用于Windows的解决方案(为什么默认情况下这甚至是限制的?)

docker info会打印一些东西,但它根本没有显示“存储驱动程序”下的基础大小的任何内容

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.13.1
Storage Driver: overlay2
 Backing Filesystem: tmpfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1
runc version: 9df8b306d01f59d3a8029be411de015b7304dd8f
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.8-moby
Operating System: Alpine Linux v3.5
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.934 GiB
Name: moby
ID: GUXQ:KPKS:PHBV:BMEF:QHHM:B2YG:MWPB:2W5H:Z3GX:27YS:QBT6:O4RV
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 13
 Goroutines: 21
 System Time: 2017-02-19T20:15:57.8764828Z
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

根据互联网上的一些帖子,这曾经或者是开始使用Linux的方式,但它不适用于Windows

  

docker daemon --storage-opt dm.basesize = 20G

我的docker安装有什么问题,如何增加baseize?

5 个答案:

答案 0 :(得分:1)

我在Windows上遇到了同样的问题。这两个设置中的一个应该可以解决这个问题:

  • 增加Docker正在使用的内存。如果是2GB,请添加更多
  • 增加"磁盘映像最大大小" - 最初为60,将其移至80 GB

这应该足够了,但取决于你正在构建的复杂性。在某些情况下,需要增加交换。 Docker的初始交换是1024 MB

由于

答案 1 :(得分:1)

我重置为出厂默认设置,然后选择:删除所有图像。 在“高级”标签上:增加“磁盘映像的最大大小”(我修改为80 GB) 然后再次构建docker

答案 2 :(得分:1)

只需运行

docker system prune -a -f

答案 3 :(得分:0)

我重新安装了Docker,现在它似乎正常工作

答案 4 :(得分:0)

早在2017年,这并不是OP的根本问题,但是如果您在Windows 10 1903上遇到此问题,则可能会遇到Windows issue #4100的Docker(“ Windows 1903使用storage-opt时失败”。

2020年1月6日,一个commit被推到docker-ce GitHub repository上,从下面的评论看来,该{{3}}似乎可以解决Windows中的潜在错误。

  • microsoft / hcsshim#718 wclayer:扩大沙箱大小时解决Windows错误
    • 修复了microsoft / hcsshim#708 Windows Host Compute Service错误,从而破坏了Windows 1903上大于20G的Docker(及其他)沙箱的行为
    • 修复了microsoft / hcsshim#624Windows 10 1903上的hcsshim始终无法构建Docker映像的问题
    • 修复/解决了docker / for-win#3884的错误(尤其是此注释以及之后的下一个注释:docker / for-win#3884(注释))
    • 使用存储选项时,修复/解决docker / for-win#4100 Windows 1903失败
    • 修复了moby / moby#36831 hcsshim :: PrepareLayer在Win32中失败:参数不正确(moby / moby#36831(注释))
    • 修复了Stannieman / audacity-with-asio-builder#5 Docker无法构建容器的问题
    • 修复了MicrosoftDocs / visualstudio-docs#3523运行带有存储选项集的构建时发生的错误
    • 修复了moby / moby#39524 Docker构建Windows 19.03 --storage-opt size> 20G

不幸的是,尚未发布包含此提交的Docker新版本,因此我们这些在1903年并遇到此bug的人暂时还处于停滞状态。