我创建了以下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": ""
}
],
当我停止容器(通过杀死它)而不是再次启动它时,它会为另一个目录创建一个新卷。所以我想知道如何处理这种情况?我开始/停止容器错了吗?或者我应该以不同方式指定音量?我知道您可以指定目标路径,但我可以(并且应该)在docker文件中指定它吗?我宁愿在docker文件中指定卷设置,因为run命令已经有很多参数来重定向端口和设备..
有什么想法吗?
答案 0 :(得分:1)
运行容器时,必须指定卷目标。 Read about volumes
docker run -p 8000:8000 --volume=<path_on_host>:/usr/bin/asmp/data asmp