Dockerfile VOLUME不能正常工作

我真的坚持使用dockerVOLUME的。 我有一个普通的dockerfile:

FROM ubuntu:latest VOLUME /foo/bar RUN touch /foo/bar/tmp.txt 

我跑$ docker build -f dockerfile -t test . 它是成功的。 在此之后,我交互地将shell运行到与创build的test映像运行相关联的docker容器中。 也就是说,我跑$ docker run -it test

观察:

/foo/bar已创build但为

docker inspect test安装信息:

 "Volumes": { "/foo/bar": {} } 

看来它根本没有安装。 这个任务看起来很直,但我做错了什么?

编辑:我正在寻找坚持在这个挂载的卷目录中创build的数据。

VOLUME指令必须放在RUN之后。

https://docs.docker.com/engine/reference/builder/#volume中所述 :

注意:如果任何构build步骤在声明之后更改了卷中的数据,则这些更改将被丢弃。

如果您想知道docker run命令创build的卷的来源:

 docker inspect --format='{{json .Mounts}}' yourcontainer 

会给出这样的输出:

 [{ "Name": "4c6588293d9ced49d60366845fdbf44fac20721373a50a1b10299910056b2628", "Source": "/var/lib/docker/volumes/4c6588293d9ced49d60366845fdbf44fac20721373a50a1b10299910056b2628/_data", "Destination": "/foo/bar", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" }] 

包含您正在寻找的path。