我正在尝试将多个添加到VOLUME,但它似乎没有按预期工作。这是我的docker文件。
FROM maven:3.6.1-jdk-8 as maven-build
VOLUME /apps/demo/conf
VOLUME /apps/demo/docs
VOLUME /apps/demo/logs
创建docker映像后,我运行了它。我没有在主机上的/ apps / demo / conf下创建的docker文件系统中看到该文件。
我知道我可以通过docker run -v path:path在命令行中传递它,但是我想知道是否可以在Dockerfile中执行此操作。
答案 0 :(得分:2)
VOLUME X
并不意味着从主机系统挂载X
。这一切都是在告诉Docker将来自容器中写入/apps/demo/conf
的数据持久保存在主机目录中。例如,如果要在重新启动容器期间保留一些数据,则可以这样做。如果要在容器中挂载主机文件系统,则必须使用run -v
。
答案 1 :(得分:0)
volume的主要目的是持久保存容器中的数据(如果以某种方式将其删除)。 如果要COPY config,为什么不在Dockerfile中使用COPY并保持ot在那里。您可以从其他目录进行COPY。
正如您所提到的,如果您仍然想挂载它,请使用run -v