繁体   English   中英

Docker文件挂载理解

[英]Docker file mount understanding

我正在使用docker,当我尝试在主机文件上安装容器文件时,我有一个奇怪的行为。

docker run -v /var/tmp/foo.txt:/var/tmp/foo.txt myapp 

上面的命令运行myapp容器,它将foo.txt文件创建到容器中的/ var / tmp目录中。 因为我需要在myapp死后将此文件保留在主机上,所以我创建了一个安装点。

我的问题是,不是在主机上创建foo.txt作为文件,而是最终得到一个名为“foo.txt”的空目录(内部没有任何内容)。

但是,如果我在主机上创建一个空文本文件foo.txt,如果我再次运行myapp,它会按预期工作。

所以,我的问题是,当我使用带有docker的文件挂载时,我是否需要在启动容器之前在主机上创建文件?

我想我错过了什么。 谢谢你的解释。

事实上,正如您所发现的,要将主机文件作为数据卷挂载,文件必须存在,否则docker将创建一个目录并挂载它。

来自: https//docs.docker.com/engine/tutorials/dockervolumes/

将主机文件挂载为数据卷

-v标志还可用于从主机安装单个文件 - 而不仅仅是目录。

$ docker run --rm -it -v ~/.bash_history:/root/.bash_history ubuntu /bin/bash

请注意,它永远不会说主机上不存在该文件。

正如评论中所建议的那样,如果您希望容器写入目录,最好安装目录。

问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM