我正在努力深入了解Docker的数量,并且我很难弄清楚差异/用例:
docker volume create
命令docker run -v /path:/host_path
VOLUME
文件中的Dockerfile
条目我特别不明白如果你将VOLUME
条目与-v
标志结合起来会发生什么。
如果有人理解得很好,请解释我!
卷是存储在/var/lib/docker/volumes/...
中的持久数据
-v
选项,也会创建卷(空)。docker run -v [host-dir:]container-dir
上声明它。
将两者(VOLUME
+ docker run -v
)结合起来意味着您可以将主机文件夹的内容装载到由/var/lib/docker/volumes/...
中的容器持久存储的卷中如果您在卷中保留了一些内容,但从那时起删除了容器(默认情况下不会删除其关联的卷,除非您使用的是docker rm -v),您可以将所述卷重新附加到新容器(声明相同的数量)。
见“Docker - How to access a volume not attached to a container?”。 使用docker volume create,可以轻松地将命名卷重新连接到容器。
docker volume create --name aname
docker run -v aname:/apath --name acontainer
...
# modify data in /apath
...
docker rm acontainer
# let's mount aname volume again
docker run -v aname:/apath --name acontainer
ls /apath
# you find your data back!