【问题标题】:In docker, can I publish a volume with initial data?在 docker 中,我可以发布包含初始数据的卷吗?
【发布时间】:2017-10-09 14:21:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: docker docker-volume


    【解决方案1】:

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

    【讨论】:

    • 文档中是否有任何部分对此进行了详细解释? docker 的哪一部分对此负责?守护进程还是卷驱动程序?为什么绑定挂载和命名卷有区别?
    • 文档docs.docker.com/storage/volumes/…使用容器填充卷部分解释了这种行为
    • 对于一种旨在简化和通用化软件部署的技术,这是一个用数据播种卷的令人惊讶的复杂解决方案。它与现在不鼓励使用的“仅数据容器”模式相似。对我来说,docker volumes 对最近发现的一个重大差距做出了仓促的反应,而这些差距最近被大众试图在共享单个数据源的同时使用冗余(例如 swarm)数据库容器。
    猜你喜欢
    • 2019-05-21
    • 2018-12-26
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2012-03-03
    • 2014-11-11
    相关资源
    最近更新 更多