[英]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.