移动 MySQL /var/lib/mysql 到共享卷

Move MySQL /var/lib/mysql to shared volume

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

这里是 Synology nas 上的可用共享。

或者,有没有一种方法可以简单地将 /var/lib/mysql 复制到共享的 docker 文件夹?这也适用于定期备份。

谢谢, 拉斯

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

  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