如何创建大于20GB的Windows docker镜像?

时间:2017-10-18 23:29:18

标签: docker docker-for-windows docker-build

我一直在努力构建一个大型的windows docker镜像,但我无法在任何地方找到解决此问题的答案。

我不打算构建生产容器解决方案。我只是想创建我的服务的原型,但在Windows容器中运行。问题是我的服务现在依赖于大约40GB的数据,并且从磁盘读取数据。显然,这不是一个很好的方法,在我们将服务托管在生产中的容器之前,它必须重构。

我只想要一个快速而又脏的解决方案来构建一个图像,其中所有这些数据都存储在容器中的磁盘上,这样我就可以了解更多有关服务如何在容器内运行的信息。

我的图片结构最终会像这样:

microsoft / windowsservercore - > mine / data_image - >矿/ binary_image

data.dockerfile:

FROM microsoft/windowsservercore
WORKDIR /data/
COPY data .

构建命令:

docker build --compress -t mine/data_image -f data.dockerfile .

过了一会儿,构建失败并显示以下消息: 无法复制文件:无法复制目录:write \?\ Volume {8cf8bb9b-c1dd-46a3-b353-3c2198754bf8} \ data:磁盘空间不足。

我知道这与windowsfilter磁盘驱动程序有关,但我没有关于此驱动程序的在线文档。它就像它不存在。

欢迎任何有关此问题的见解!

2 个答案:

答案 0 :(得分:0)

看起来像你can't specify a size for docker build yet

Docker CE 17.09中添加了在运行容器时指定大小的功能,因此功能至少存在。所以请注意#34947以获得一个不应该太远的决议。

我知道在Linux上,devicemapper存储驱动程序有一个dm.basesize选项,您可以在守护程序上设置该选项来修改所有容器启动的卷大小。 Windows存储驱动程序可能有类似的选项吗?

答案 1 :(得分:0)

您可以像这样覆盖默认的20GB大小:

dockerd --register-service --storage-opt size=60G