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

问题描述 投票:0回答:1

我在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.*,结果相似。

windows docker dockerfile windows-server windows-server-2016
1个回答
0
投票

你将错误的路径C:\>cd inetpub\wwwroot

您必须转到容器路径,以便:

运行-d your image

  1. docker exec -it "containerID" pwoershell
  2. C:\>cd inetpub\wwwroot
  3. ls

这将是你的Dockerfiles工作正常

© www.soinside.com 2019 - 2024. All rights reserved.