泊坞窗容积再现每
问题描述:
我已经创建了如下泊坞窗文件泊坞窗容积再现每
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命令已经有很多参数来重定向端口和设备。
有什么想法?
答
运行容器时,必须指定卷目标。 Read about volumes
docker run -p 8000:8000 --volume=<path_on_host>:/usr/bin/asmp/data asmp
还有什么比它定义在dockerfile如果你仍然有在运行命令来定义它的意义呢? –
不幸的是,你不能将其定义到Dockerfile中。让我告诉你[Dockerfile卷参考](https://docs.docker.com/engine/reference/builder/#/volume) VOLUME预计只有一个参数,这可能是一个字符串或字符串数组,它包含挂载点在容器内。 –
让我们看看[docker-compose工具](https://docs.docker.com/compose/overview/)。当你可以定义容器运行的所有变量时,它允许你写配置文件。 –