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
我创建了以下 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