gpt4 book ai didi

docker - Docker群是否会忽略Dockerfile中的VOLUME命令?

转载 作者:行者123 更新时间:2023-12-02 18:47:57 25 4
gpt4 key购买 nike

我们正在部署堆栈,撰写文件列出了两项服务:

  • mediawiki
  • mySQL

  • 我们看到 mysql Dockerfile has a VOLUME directive将数据库持久化到Docker卷

    但是,如果我们对compose文件进行 docker stack rm然后 docker stack deploy编码,则会丢失所有数据库内容。

    那是预期的行为吗?这样做的理由是什么?

    最佳答案

    Swarm模式不会生成Docker镜像,因此可以肯定地说docker swarm会忽略Dockerfile的每一行。生成的图像将具有标识的体积,该体积将在容器运行时创建,无论是在群集模式内部还是外部。如果您未在运行时指定卷装载,则docker将在该位置为您提供一个匿名卷,该卷稍后将难以识别,并且位于运行容器的节点的本地。使用新堆栈时,将不使用以前的匿名卷,并且在各种情况下,可以自动删除匿名卷(例如,当容器配置为在退出时自动删除时,我不确定它是否适用于swarm模式)。

    命名卷可以使数据更易于在单个节点群集中重用。进入多节点群集时,需要将此数据移出容器运行所在的节点。有关如何使用NFS之类的东西进行外部数据存储的详细信息,请参阅this answer到相关问题。

    关于docker - Docker群是否会忽略Dockerfile中的VOLUME命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56151262/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com