一尘不染

创建其中包含预先存在的数据的Docker卷

docker

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

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

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

事实是,他还将启动MySQL容器,并且将从头开始重复初始过程。

如我所读,如果我从DVC 装载[ --volumes-from]卷[
/etc/mysql/var/lib/mysql],则将覆盖已经存在的数据,并且将无法读取它们。

可以将卷与其中已包含数据的目录一起使用吗?


阅读 211

收藏
2020-06-17

共1个答案

一尘不染

简短的答案是“否”,但这是因为您在使用容器时走错了路。

这就是为什么您的图片 不应 包含静态数据的原因。将静态内容保留在映像中,将动态内容保留在数据容器中。(还有一个启动脚本可以动态评估需要的任何内容)

你或许可以用docker cp提取文件到数据容器一次性的-或者只是直通挂载本地文件系统,到一个新的挂载点,只是使用tar/
rsyncdocker exec前重新安装-但实际上我建议你的重建图像始终将数据容器用于其数据。

2020-06-17