Docker volume 每次都重新创建一个新的目标路径

Docker volume recreates a new target path every time

我创建了以下 docker 文件

FROM resin/rpi-raspbian:jessie-20160831
.. 
RUN mkdir -p /usr/bin/asmp
COPY src /usr/bin/asmp/
VOLUME /usr/bin/asmp/data
..

复制操作复制这样的目录结构:

data
   db.sqlite3 
web
    ...
worker
    ...

我只是启动一个容器,使用类似这样的东西:

docker run -p 8000:8000 asmp

当我进行检查时,我看到了这个:

 "Mounts": [
        {
            "Name": "30ccc87580cd85108cb4948798612630640b5564f66de848a4e2f77db8148d3a",
            "Source": "/var/lib/docker/volumes/30ccc87580cd85108cb4948798612630640b5564f66de848a4e2f77db8148d3a/_data",
            "Destination": "/sys/fs/cgroup",
            "Driver": "local",
            "Mode": "",
            "RW": true,
            "Propagation": ""
        },
        {
            "Name": "c4473031d209eb29d3f454be68325c6b1f33aa660185bf57e8abb91a56bb260e",
            "Source": "/var/lib/docker/volumes/c4473031d209eb29d3f454be68325c6b1f33aa660185bf57e8abb91a56bb260e/_data",
            "Destination": "/usr/bin/asmp/data",
            "Driver": "local",
            "Mode": "",
            "RW": true,
            "Propagation": ""
        }
    ],

当我停止容器(通过杀死它)而不是再次启动它时,它会在不同的目录中创建一个新卷。所以我想知道如何处理这种情况?我 starting/stopping 容器错了吗?或者我应该以不同的方式指定音量?我知道您可以指定目标路径,但是我可以(并且应该)在 docker 文件中指定它吗?我宁愿在 docker 文件中指定音量设置,因为 运行 命令已经有很多参数来重定向端口和设备..

有什么想法吗?

您必须在 运行 容器时指定卷目的地。 Read about volumes

docker run -p 8000:8000 --volume=<path_on_host>:/usr/bin/asmp/data asmp