在docker中,我可以发布包含初始数据的卷吗?

在docker中,我可以发布包含初始数据的卷吗?,docker,docker-volume,Docker,Docker Volume,我想在两个容器之间共享一个文件存储。从文档中,我看到您可以创建和使用如下卷: docker volume create --name DataVolume1 docker run -ti --rm -v DataVolume1:/datavolume1 ubuntu 但是,我希望容器能够访问一组初始的共享数据。docker是否支持卷的发布?如果不是,这是否意味着我应该在创建卷后手动写入初始数据,或者是否有其他解决方案可以将数据与映像一起发布?使用命名卷(而不是主机卷,也称为绑定装载)docke

我想在两个容器之间共享一个文件存储。从文档中,我看到您可以创建和使用如下卷:

docker volume create --name DataVolume1
docker run -ti --rm -v DataVolume1:/datavolume1 ubuntu

但是,我希望容器能够访问一组初始的共享数据。docker是否支持卷的发布?如果不是,这是否意味着我应该在创建卷后手动写入初始数据,或者是否有其他解决方案可以将数据与映像一起发布?

使用命名卷(而不是主机卷,也称为绑定装载)docker将在您装载映像的位置将空命名卷初始化为映像的内容。因此,如果图像中的文件位于/datavolume1,并且datavolume1为空,docker会将这些文件复制到指定卷中。

文档中是否有任何部分对此进行了详细解释?docker的哪一部分对此负责?守护进程还是卷驱动程序?为什么绑定装载和命名卷之间存在差异?此行为在文档中的“使用容器填充卷”一节中进行了解释。对于一种旨在简化和普及软件部署的技术,这是一种令人惊讶的复杂解决方案,用于在卷中植入数据。它与现在不鼓励使用的“仅数据容器”模式相似。对我来说,docker volumes对最近发现的一个重大缺口做出了仓促反应,这些缺口是由试图在共享单个数据源的同时使用冗余(如swarm)数据库容器的群众发现的。