如果我使用 VOLUME
在docker文件中,它会创建一个匿名卷。有没有办法从dockerfile创建命名卷?
我正在寻找相当于Dockerfile的
docker run -v my-named-volume:/mnt/something repo/my-img
我通过Dockerfile设法获得的相当于
docker run -v /mnt/something repo/my-img
我认为它不受支持;然而, 文件 这说
VOLUME指令创建一个挂载点 指定的名称 并将其标记为从本机主机或其他容器保存外部安装的卷。
这似乎意味着有一种方法来命名音量,但它没有说明如何
有点不清楚。它使用该名称创建安装点,但实际文件路径不使用该名称。如果你做了 docker inspect {container-name}
,你会看到如下名称: "Destination": "/mnt/something",
和实际位置如: "Source": "/var/lib/docker/volumes/cb80c7802244dd3669eed8afb7d94b61366844d80677eb180fa12002db04ea7c/_data",
。
这是因为Dockerfile没有绑定到特定主机,并且无法确定主机卷路径是否存在。你需要这样做 run
(或同等的)声明。你可以使用api或 docker inspect
如果您需要在脚本或类似内容中使用该信息,请在创建容器后找出卷的位置。
在Dockerfile中声明卷可确保数据保持不变并且可供主机使用 - 即使该位置未预设。