6

当我想在 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 安装有什么问题,如何增加 basesize?

4

5 回答 5

2

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

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

这应该足够了,但取决于您正在构建的内容的复杂性。在某些情况下,需要增加 Swap。Docker的初始Swap为1024 MB

谢谢

于 2018-05-31T15:20:49.920 回答
1

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

于 2019-11-14T02:41:20.810 回答
0

我已经重新安装了 Docker,现在它似乎可以工作了

于 2017-02-20T10:46:20.807 回答
0

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

2020 年 1 月 6 日,一个提交被推送到docker-ce GitHub 存储库,从评论(如下)看来,该提交似乎实现了 Windows 中潜在错误的解决方法。

  • microsoft/hcsshim#718 wclaer:在扩展沙箱大小时解决 Windows 错误
    • 修复了 microsoft/hcsshim#708 Windows 主机计算服务错误在 Windows 1903 上破坏了大于 20G 的 docker(和其他)沙箱
    • 修复 microsoft/hcsshim#624Windows 10 1903 上的 hcsshim 总是无法构建 Docker 镜像
    • 修复/解决 docker/for-win#3884 尝试构建 Docker 映像时发生错误(尤其是此评论和之后的下一条评论:docker/for-win#3884(评论))
    • 修复/解决 docker/for-win#4100 Windows 1903 在使用 storage-opt 时失败
    • 修复 moby/moby#36831 hcsshim::PrepareLayer 在 Win32 中失败:参数不正确 (moby/moby#36831 (comment))
    • 修复 Stannieman/audacity-with-asio-builder#5 Docker 不会构建容器
    • 修复了 MicrosoftDocs/visualstudio-docs#3523 使用存储选项集运行构建时出现的错误
    • 修复 moby/moby#39524 Docker build windows 19.03 --storage-opt size>20G

不幸的是,还没有包含这个提交的新版本的 Docker,所以我们这些在 1903 年遇到这个错误的人暂时有点卡住了。

于 2020-01-31T01:33:24.777 回答
-1

假设您在开发环境中执行此操作,只需运行:

docker system prune -a -f

注意:不要在生产环境中运行它

于 2020-05-15T05:32:59.150 回答