我的图像具有以下目录:C:\ MyDir。该目录具有一些在构建映像时创建的预定义内容。
我想保留对该目录的更改,因此我尝试使用卷,但是当我这样做并在创建容器时,C:\ MyDir为空。据我从Docker文档中了解到的,似乎如果我使用匿名卷,则C:\ MyDir的实际内容(来自图像)将在创建过程中反映在该卷中,因此应该在容器中显示它们,但是它们不是-似乎没有从映像复制文件。当然,在容器中已经写入了一些新文件之后,这些文件就会反映在卷中。
关于如何实现此目标的任何想法? -要在保持运行状态不变的同时仍保留图像中的原始文件?
答案 0 :(得分:1)
目前,适用于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'