如果我正在使用最初不使用共享卷选项运行的容器化MySQL数据库,那么对数据进行外部化的最简单方法是什么?还有办法修改容器,以便它与指定目录中的Docker主机共享数据吗?
注意:如果您仍然遇到此问题,请发表评论,以便我可以进一步改进。
答案 0 :(得分:1)
官方Docker文档提供了很棒的overview on how to backup, restore, or migrate data volumes。特别是对于我的问题,我做了以下几点:
运行一个运行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
来存储数据。)
上一步将导致在Docker主机中创建/path/to/directory/mysql.tar
。现在可以像以下一样提取:
tar -xvf mysql.tar
(假设cd /path/to/directory
)。生成的目录(/var/lib/mysql
)现在可以用作具有相同实例的共享卷,或任何其他容器化MySQL实例。