泊坞窗容积再现每

问题描述:

我已经创建了如下泊坞窗文件泊坞窗容积再现每

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

+0

还有什么比它定义在dockerfile如果你仍然有在运行命令来定义它的意义呢? –

+0

不幸的是,你不能将其定义到Dockerfile中。让我告诉你[Dockerfile卷参考](https://docs.docker.com/engine/reference/builder/#/volume) VOLUME预计只有一个参数,这可能是一个字符串或字符串数​​组,它包含挂载点在容器内。 –

+0

让我们看看[docker-compose工具](https://docs.docker.com/compose/overview/)。当你可以定义容器运行的所有变量时,它允许你写配置文件。 –