【问题标题】:Create Docker volume with preexisting data in it创建包含预先存在的数据的 Docker 卷
【发布时间】:2016-03-22 10:36:32
【问题描述】:

我有一个用于启动容器的 MySQL 映像。 每次创建容器时,我都会设置 dbs ,导入 sql-dump 文件并创建用户。

当我在容器上工作时,我会创建存储在 MySQL 中的各种数据。

我想将这些额外数据保存在数据卷容器 [DVC] 中,以便我可以将 DVC 交给同事并从我停止的地方继续。

问题是他还将启动一个 MySQL 容器,并且将从头开始重复初始过程。

正如我所读到的,如果我从 DVC 挂载 [--volumes-from] 卷 [/etc/mysql/var/lib/mysql],则现有数据将被覆盖且无法读取。

是否可以将卷与已包含数据的目录一起使用?

【问题讨论】:

    标签: docker docker-volume


    【解决方案1】:

    简短的回答是否定的,但那是因为你的容器走错了路。

    这就是为什么您的图片不应包含静态数据。将静态事物保存在图像中,将动态事物保存在数据容器中。 (还有一个启动脚本来动态评估任何需要它的东西)

    您可能可以使用docker cp 将文件提取到数据容器中以一次性完成 - 或者只是通过将本地文件系统挂载到新的挂载点,然后使用tar / rsync 和@987654324 @ 在重新安装之前 - 但实际上我建议重建你的图像以始终使用数据容器来存储它的数据。

    【讨论】:

    • 我想我可以通过在创建任何内容之前安装卷容器来重构我的图像,并且所有数据[初始和新]都将驻留在数据容器中。然后我可以共享 DVC,其他人可以从我停止的地方接听。我认为,那样的话,在使用 docker-compose 文件时,是使用新的 DVC 还是现有的 DVC,这将是一个决定问题。对吗?
    • 是的。这样就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多