我只是好奇。要List files in exited container我可以使用docker diff
,但如果目标目录也是卷,例如:
RUN mkdir /target
VOLUME /target
然后docker diff
不会显示任何内容。这是否意味着容器退出后/target
为空?如何查看已退出容器中/target
的内容?
答案 0 :(得分:0)
docker diff
没有显示任何更改,因为此命令检查对容器文件系统上的文件或目录的更改。
卷,参考Docker文档,是:
数据卷是一个或多个容器内的特殊指定目录,绕过Union文件系统。
这解释了为什么docker diff
没有显示卷内的更改。
这是否意味着/ target在容器退出后保留为空?
没有。即使删除容器,数据量仍然存在。
如何检查已退出容器中该/目标的内容?
您可以使用docker inspect
命令找到容器卷。
docker inspect container_name
输出将是这样的,其中Source
指定主机中卷的位置。
...
"Mounts": [
{
"Name": "fac362...80535",
"Source": "/var/lib/docker/volumes/fac362...80535/_data",
"Destination": "/webapp",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
...
我在制作音量之前先做mkdir / target。那么如果在这种情况下它已经存在于容器内部,那么该目录的内容会发生什么呢?
如果先前存在目录,则会将内容复制到新创建的卷中。因此,如果您将目录设为卷,则不会丢失更改。