使用预先存在的数据创建 Docker 个卷

Create Docker volume with preexisting data in it

我有一个 MySQL 图像,我从中启动了一个容器。 我设置了 dbs ,导入 sql-dump 文件并在每次创建容器时创建用户。

当我在容器上工作时,我创建了存储在 MySQL.

中的各种数据

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

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

正如我所读,如果我从 DVC 安装 [--volumes-from] 卷 [/etc/mysql/var/lib/mysql],已经存在的数据将被覆盖并且不会被覆盖可读。

是否可以使用目录中已有数据的卷?

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

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

您可以一次性使用 docker cp 将文件提取到数据容器中 - 或者直接将本地文件系统挂载到新的挂载点,然后使用 tar / rsyncdocker exec 在重新安装之前 - 但实际上我建议重建您的图像以始终使用数据容器来存储数据。