我有一个Dockerfile具有在序列这两个命令(https://gist.github.com/hasMobi/e198555704ee57e84399):Dockerfile - 除去在一个RUN命令文件时,它仍然存在于下一个RUN命令
RUN rm -frv /usr/share/nginx/html/*
RUN ls /usr/share/nginx/html/
当我看在控制台同时建立兴田形象,我可以清楚地看到从该文件夹中取出2个文件,但在接下来的运行指令到来时,它会列出该目录的内容和文件仍然存在?:
这是怎么回事在这?据我所知,每个RUN命令创建一个单独的层和一个从另一分离,但不应该继承文件系统的准确状态,这是在前面的运行命令(第二RUN命令与所述2个文件消失)?
如果您要将dockerfile的第12行更改为:'RUN rm -frv/usr/share/nginx/html/* && ls/usr/share/nginx/html /',您会得到什么输出结果?只是想,如果这个问题是在命令中隔离开来,或者如果它是在你的图像层不会彼此 – CtheGood
的顶部正确构建我遇到了同样的问题,并最终意识到,我试图删除文件中定义作为由基本图像Dockerfile的体积内,从而使体积因此得到在每一个层重新创建。 从[Docker文档](https://docs.docker.com/engine/reference/builder/#volume):'如果任何构建步骤在声明后更改了卷中的数据,那些更改将会是丢弃“。 –