我在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.*
类似的结果。
答案 0 :(得分:0)
你将走错路C:\>cd inetpub\wwwroot
您必须转到容器路径:
运行-d your image
docker exec -it "containerID" pwoershell
C:\>cd inetpub\wwwroot
ls
这样就可以了,因为您的Dockerfiles正常工作