Docker for Windows: 如何用图像目录的内容初始化卷?

Docker for Windows: How to initialize a volume with the contents of a directory of an image?

我的镜像有以下目录:C:\MyDir。此目录包含一些在构建映像时创建的预定义内容。

我希望保留对此目录的更改,因此我尝试使用卷,但是当我这样做并且在创建容器时,C:\MyDir 是空的。据我从 Docker 文档中了解到,如果我使用匿名卷,C:\MyDir 的实际内容(来自图像)将在其创建期间反映在卷中,因此它们应该在容器内存在,但它们不存在 - 似乎没有从图像中复制任何文件。当然,在容器内已经写入一些新文件后,这些文件会反映在卷中。

关于如何实现此目标的任何想法? - 要保留我的 运行 更改,同时仍保留图像中的原始文件?

目前,Windows 的 Docker 支持此行为。 GitHub 上的问题 Windows: cannot put data in volumes with docker build 目前正在跟踪此问题。

目前,最接近的替代方法是这样做:

#escape=`
FROM microsoft/windowsservercore
SHELL [ "powershell", "-Command" ]
COPY ".\starter-config" "C:\starter-config"
CMD if ((Get-ChildItem 'C:\config').Length -eq 0) {`
        Copy-Item 'C:\starter-config\*' 'C:\config\';`
    };`
    & 'C:\RunTheServer.ps1'