我正在 Windows Server Core 2016 TP5 上尝试这个。我有这个简单的 Dockerfile:
FROM microsoft/iis
RUN powershell remove-item c:\inetpub\wwwroot\iisstart.*
该microsoft/iis
图像包含几个文件 (iisstart.htm
和iisstart.png
) 在c:\inetpub\wwwroot
. 我正在尝试删除这些文件。
这是 docker build 的输出:
c:\git\temp\test>docker build -t foo .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM microsoft/iis
---> c26f4ceb81db
Step 2 : RUN powershell remove-item c:\inetpub\wwwroot\iisstart.*
---> Running in 4d17a5ab86e5
---> d5f85251b3db
Removing intermediate container 4d17a5ab86e5
Successfully built d5f85251b3db
如果我现在启动一个容器并查看wwwroot
,文件仍然存在。
docker run --rm -it foo cmd
Microsoft Windows [Version 10.0.14300]
(c) 2016 Microsoft Corporation. All rights reserved.
C:\>cd inetpub\wwwroot
C:\inetpub\wwwroot>dir
Volume in drive C has no label.
Volume Serial Number is 5664-BDCB
Directory of C:\inetpub\wwwroot
05/19/2016 07:05 PM <DIR> .
05/19/2016 07:05 PM <DIR> ..
05/05/2016 03:27 PM 703 iisstart.htm
05/05/2016 03:27 PM 99,710 iisstart.png
2 File(s) 100,413 bytes
2 Dir(s) 21,209,399,296 bytes free
C:\inetpub\wwwroot>
在正在运行的容器中,如果我执行powershell remove-item c:\inetpub\wwwroot\iisstart.*
,文件会被很好地删除。为什么相同的命令在 dockerfile 中不起作用?
我也尝试del c:\inetpub\wwwroot\iisstart.*
过类似的结果。