无法使用Dockerfile从wwwroot中删除文件

时间:2016-05-20 02:11:38

标签: windows docker dockerfile windows-server windows-server-2016

我在Windows Server Core 2016 TP5上尝试此操作。我有这个简单的Dockerfile:

FROM microsoft/iis

RUN powershell remove-item c:\inetpub\wwwroot\iisstart.*

microsoft/iis图片包含iisstart.htm中的几个文件(iisstart.pngc:\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.*类似的结果。

1 个答案:

答案 0 :(得分:0)

你将走错路C:\>cd inetpub\wwwroot

您必须转到容器路径:

运行-d your image

之后
  1. docker exec -it "containerID" pwoershell
  2. C:\>cd inetpub\wwwroot
  3. ls
  4. 这样就可以了,因为您的Dockerfiles正常工作