将MySQL / var / lib / mysql移至共享卷

时间:2019-12-29 03:44:13

标签: mysql docker synology

我正在Synology nas上的Docker中运行带有MySQL 8.0.18的容器。我只是用它来支持那个盒子上的另一个容器(Mediawiki)。 MySQL在路径/var/lib/mysql上安装了一个卷。我想将其移至共享卷,以便可以通过File Station访问它并定期备份它。如何在不破坏MySQL的情况下将其移至下面显示的docker共享?

enter image description here

Synology nas上有可用的共享。

enter image description here

或者,有没有一种方法可以将/ var / lib / mysql复制到共享的docker文件夹中?定期备份应该也可以。

谢谢, 鲁斯

编辑:按照Zeitounator的计划显示结果。在运行docker命令(2.)之前,我在File Station中创建了mediawiki_mysql_backups12-29-2019文件夹。运行2.和3.之后,来自mysql的所有文件都在这里,我现在有一个不错的备份!

enter image description here

1 个答案:

答案 0 :(得分:1)

  1. 停止当前容器以确保mysql未运行。
  2. 创建一个虚拟的临时容器,在其中装入2个所需的卷。我倾向于将用户busybox用于此类任务=> docker run -it --rm --name temp_mysql_copy -v mediaviki-mysql:/old-mysql -v /path/to/ttpe/docker:/new-mysql busybox:latest
  3. 复制所有文件=> cp -a /old-mysql/* /new-mysql/
  4. 退出虚拟容器(如果使用上述命令,容器将自行清理)
  5. 使用mysql:8创建一个新容器,将新文件夹镜像到/var/lib/mysql中(您可能需要在syno docker gui中执行此操作)。
  6. 如果一切正常,请删除旧的mediaviki-mysql