mysql - 将 MySQL /var/lib/mysql 移动到共享卷
问题描述
我在 Synology nas 上的 Docker 中运行带有 MySQL 8.0.18 的容器。我只是用它来支持那个盒子上的另一个容器(Mediawiki)。MySQL 在 path 安装了一个卷/var/lib/mysql
。我想将其移至共享卷,以便我可以使用 File Station 访问它并定期备份它。如何docker
在不破坏 MySQL 的情况下将其移动到下面显示的共享?
以下是 Synology nas 上的可用共享。
或者,有没有一种方法可以简单地将 /var/lib/mysql 复制到共享的 docker 文件夹中?这也适用于定期备份。
谢谢,拉斯
编辑:按照 Zeitounator 的计划显示结果。在运行 docker 命令 (2.) 之前,我在 File Station 中创建了mediawiki_mysql_backups
和文件夹。12-29-2019
运行 2. 和 3. 之后,来自 mysql 的所有文件都在这里,我现在有一个很好的备份!
解决方案
- 停止当前容器以确保 mysql 未运行。
- 创建一个虚拟临时容器,在其中安装 2 个所需的卷。我倾向于使用busybox来完成这类任务=>
docker run -it --rm --name temp_mysql_copy -v mediaviki-mysql:/old-mysql -v /path/to/ttpe/docker:/new-mysql busybox:latest
- 复制所有文件 =>
cp -a /old-mysql/* /new-mysql/
- 退出虚拟容器(如果您使用我上面的命令,它将自行清理)
- 创建一个带有 mysql:8 映像的新容器,将新文件夹安装在其中
/var/lib/mysql
(您可能需要在 syno docker gui 中执行此操作)。 - 如果一切正常,请删除旧
mediaviki-mysql
卷
推荐阅读
- ruby - 为什么 `next` 没有列为 `Enumerator` 类的方法?
- python - 简单的二十一点游戏:套牌列表变为 NoneType
- android-studio - 我怎么不能在 Android Studio 上创建 Fragments 和 Activity?错误找不到
- time - 日期 - 小时计算之间的 Google 电子表格时间
- javascript - Flutter Web:如何使用 dart js 运行 javascript
- google-colaboratory - 如何使用 google colab 从机器访问数据
- typescript - 根据成员的属性提取联合成员
- python - 递归函数背后的逻辑,它本身不止一次调用自己
- java - 为什么向上转换 ab.a + ab.b 会产生结果 1 和 1.0?
- bash - 将程序输出重定向到文件和文件内容预览