2016-11-16 70 views
1

我使用docker,当我尝试在主机文件上安装容器文件时出现奇怪的行为。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,它按预期工作。

所以,我的问题是,我需要当我使用的文件与码头工人开始安装在容器之前创建主机文件?

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

+0

创建一个文件夹mount,像'docker run -v $(pwd):/ var/tmp myapp'。然后,当您在容器中的'/ var/tmp'中创建foo.txt时,它将被保存在主机上的工作目录中。 – johnharris85

回答

0

其实你发现,安装一个主机文件的数据量文件必须存在,否则泊坞窗将创建一个目录并进行安装。

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

安装主机文件的数据量

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

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

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

正如评论所说是更好,如果你想要的容器写入到其安装目录。

Regards