如何将MySQL容器中的数据备份到共享卷?

时间:2016-03-20 17:42:36

标签: mysql docker

如果我正在使用最初不使用共享卷选项运行的容器化MySQL数据库,那么对数据进行外部化的最简单方法是什么?还有办法修改容器,以便它与指定目录中的Docker主机共享数据吗?

注意:如果您仍然遇到此问题,请发表评论,以便我可以进一步改进。

1 个答案:

答案 0 :(得分:1)

官方Docker文档提供了很棒的overview on how to backup, restore, or migrate data volumes。特别是对于我的问题,我做了以下几点:

  1. 运行一个运行Ubuntu的丢弃Docker容器,与当前运行的MySQL容器共享卷,并在本地计算机中备份数据库数据(如概述中所述):

    docker run --rm --volumes-from some-mysql -v /path/to/local/directory:backup ubuntu:15.10 tar cvf /backup/mysql.tar /var/lib/mysql

    (官方MySQL Docker镜像使用/var/lib/mysql来存储数据。)

  2. 上一步将导致在Docker主机中创建/path/to/directory/mysql.tar。现在可以像以下一样提取:

    tar -xvf mysql.tar

    (假设cd /path/to/directory)。生成的目录(/var/lib/mysql)现在可以用作具有相同实例的共享卷,或任何其他容器化MySQL实例。