我有一个从中启动容器的MySQL映像。每次创建容器时,我都会设置dbs,导入sql-dump文件并创建用户。
在容器上工作时,我会创建存储在MySQL中的各种数据。
我想将这些额外的数据保存在数据卷容器[DVC]中,这样我就可以将DVC交给同事,然后从停下来的地方继续。
事实是,他还将启动MySQL容器,并且将从头开始重复初始过程。
如我所读,如果我从DVC 装载[ --volumes-from]卷[ /etc/mysql和/var/lib/mysql],则将覆盖已经存在的数据,并且将无法读取它们。
--volumes-from
/etc/mysql
/var/lib/mysql
可以将卷与其中已包含数据的目录一起使用吗?
简短的答案是“否”,但这是因为您在使用容器时走错了路。
这就是为什么您的图片 不应 包含静态数据的原因。将静态内容保留在映像中,将动态内容保留在数据容器中。(还有一个启动脚本可以动态评估需要的任何内容)
你或许可以用docker cp提取文件到数据容器一次性的-或者只是直通挂载本地文件系统,到一个新的挂载点,只是使用tar/ rsync与docker exec前重新安装-但实际上我建议你的重建图像始终将数据容器用于其数据。
docker cp
tar
rsync
docker exec