当前位置: 首页 > 知识库问答 >
问题:

Docker导入与Docker for Windows使用Linux容器没有空间留在设备错误与存储驱动程序:overlay2

乐正意智
2023-03-14

我正在导入一个15GB的大型数据库映像(我可以毫无问题地导入一个9.5GB的映像)与Docker for Windows一起使用Linux容器。我使用的是Windows 10 Pro 1803,build 17134.1006

错误:

PS C:\WINDOWS\system32> docker import "C:\Users\oscar\Desktop\MSSQL.tar" mssql
Error response from daemon: Error processing tar file(exit status 1): write /var/opt/mssql/data/TestDatabase.mdf: no space left on device

我已经删除了所有悬垂的卷和未使用的图像,如下所示:

https://stackoverflow.com/a/37287054/3850405

在阅读有关存储驱动程序的文章时,我遇到了devicemapper和其他驱动程序的一些限制。

https://docs.docker.com/engine/reference/commandline/dockerd/#options-每个存储驱动程序

对于devicemapper

指定创建基本设备时要使用的大小,这会限制图像和容器的大小。默认值为10G。请注意,精简设备本质上是“稀疏的”,因此大部分为空的10G设备不会在池中使用10GB的空间。然而,设备越大,文件系统将为空的机箱使用更多的空间。

https://docs.docker.com/engine/reference/commandline/dockerd/#dmbasesize

我找不到overlay2的任何图像限制,默认情况下容器只有20 GB限制。

指定创建用于容器的沙盒时使用的大小。默认为20G。

我试图运行示例命令,但出现了一个错误。dockerd未映射到命令。

C:\>dockerd --storage-opt size=40G
'dockerd' is not recognized as an internal or external command,
operable program or batch file.

https://docs.docker.com/engine/reference/commandline/dockerd/#size

既然它无论如何都应该起作用,我不确定我走的是正确的道路。

系统信息:

PS C:\WINDOWS\system32> docker --version
Docker version 19.03.2, build 6a30dfc

PS C:\WINDOWS\system32> docker info
Client:
 Debug Mode: false

Server:
 Containers: 5
  Running: 0
  Paused: 0
  Stopped: 5
 Images: 8
 Server Version: 19.03.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  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
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.9.184-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.837GiB
 Name: docker-desktop
 ID: XD32:TQJ4:EKWP:BPE4:ETXW:XFXE:LB3L:J4WB:PCFR:DAXK:MJ62:47RI
 Docker Root Dir: /var/lib/docker
 Debug Mode: true
  File Descriptors: 28
  Goroutines: 42
  System Time: 2019-09-17T10:00:50.1259999Z
  EventsListeners: 1
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

存储空间应该不是问题:

共有1个答案

钱青青
2023-03-14

我应该学会阅读。。。将其解读为55.29 GB未使用。在Docker中增加磁盘映像最大大小后-

 类似资料:
  • 问题内容: 我想将数据从启用DMA的PCIe硬件设备尽快移入用户空间。 问:如何将“直接I / O通过DMA传输和/或通过DMA传输结合到用户空间” 通读LDD3,看来我需要执行几种不同类型的IO操作! 给我可以传递给硬件设备的物理地址。但是将需要设置并在传输完成后执行类型调用。这似乎很浪费,要求设备将DMA DMA到内核内存(充当缓冲区),然后将其再次传输到用户空间。LDD3 p453: 我理想

  • 当我处理掉所有的图像和容器时,它确实释放了一些空间,图像构建运行了更长时间,然后以同样的错误失败。所以问题是,这是指哪个空间,我如何配置它?

  • 有一个问题,它不隐藏浏览器,我能做什么?

  • 问题内容: 谁能解释我, 什么啊 这有什么用途? 如何使用? 为什么我不能定义与之功能相同的新功能? 问题答案: 一个,表示“输入- 输出控制”是一种特定于设备的系统调用。Linux(300-400)中只有几个系统调用,不足以表示设备可能具有的所有独特功能。因此,驱动程序可以定义一个ioctl,它允许用户空间应用程序向其发送订单。但是,ioctl并不是很灵活,并且会变得有些混乱(数十个“魔术数字”

  • 问题内容: 如何使用打开,关闭,ioctl等功能为i2c设备制作字符设备?最近两周我一直在寻找有关它的信息,找不到任何有效的方法。我在Essential LinuxDevice Drivers中找到了一些信息,但是它是针对2.6内核编写的,我使用3.4.79(我正尝试在cubian distr上为cubieboard2编写此驱动程序),因此本书有许多不推荐使用的功能,我试图在那里写我的驱动程序,但

  • Ubuntu 14.04 MongoDB shell版本:2.4.9 在OpenStack Kilo中备份mongodb用于测高仪。后退过程中没有空格错误。部分回档在哪里?删除什么文件才能删除部分备份文件。如何恢复失败备份占用的空间?