我一直在努力构建一个大型的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磁盘驱动程序有关,但我没有关于此驱动程序的在线文档。它就像它不存在。
欢迎任何有关此问题的见解!
答案 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