【问题标题】:How to switch from docker named volumes to path based volumes without losing the container data? [duplicate]如何在不丢失容器数据的情况下从 docker 命名卷切换到基于路径的卷? [复制]
【发布时间】:2021-02-17 14:11:10
【问题描述】:

我在我的树莓派上运行了几个 docker 容器。所有容器都使用命名卷来存储持久数据。但由于我经常需要从 docker 卷中编辑配置文件等,因此我更喜欢使用基于路径的卷,而不是由 docker 管理的命名卷。

我首先坚持我可以复制所有内容

/var/lib/docker/volumes/

到我的主目录上的文件夹并删除所有容器并使用基于新路径的卷重新运行它们。 但不幸的是,这似乎不起作用。例如,如果我使用新的基于路径的卷(这只是我从 /var/lib/docker/volumes/ 复制的文件夹)重新运行 portainer,我需要创建一个新用户等,就好像 portainer 无法使用复制的数据一样.我已经使用 chown 为当前用户添加权限了。

希望有人能提供帮助。

【问题讨论】:

  • 您通常根本不应该查看/var/lib/docker;那里的内容是相当特定于实现的,不一定在所有平台上都可以访问(虽然,是的,在本机 Linux 上,命名卷内容位于基本的平面文件目录中)。您可以docker run 一个容器来复制内容,如链接问题中所述。

标签: docker persistent-volumes


【解决方案1】:

好的,我注意到在命名卷的每个文件夹中都有一个名为“_data”的额外文件夹,我必须将底层文件夹中的所有内容复制到正确的文件夹,以便能够使用以下数据运行容器命名的卷。

我仍然不知道这是否是从命名卷迁移到基于路径的卷的“正确方法”,但至少现在可以使用。

为什么 docker 甚至创建一个名为 _data 的额外文件夹,而不是只使用命名卷的文件夹?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    相关资源
    最近更新 更多