mysql容器坏了,如何恢复数据?

时间:2017-06-26 10:33:59

标签: mysql docker

我们的IT打破了mysql容器,现在它无法启动。

我知道我可以提交一个新版本并在没有入口点的情况下运行它,所以我可以“exec -it”进入并查看错误。

但我该如何恢复数据呢?检查旧容器并从已装入的卷中复制所有文件? (这个问题似乎有点过头了,我可以'没有入口点'开始'我的容器吗?)

这个问题的最佳做法是什么?

2 个答案:

答案 0 :(得分:2)

如果您已装入卷,则您的数据位于主机的卷目录中,除非您将其删除。因此,修复MySQL映像,然后创建另一个MySQL容器。

您应该可以使用docker attachdocker exec修复容器。您甚至可以使用以下内容更改容器入口点:How to start a stopped Docker container with a different command?

但这不是一个好方法。如Best practices for writing Dockerfiles中所述,Docker容器应该是短暂的,这意味着它们可以轻松替换为新的容器。因此,最好的选择是销毁您的容器并创建一个新容器。

答案 1 :(得分:0)

我认为正如@kstromeiraos所说,你应该首先修复你的Dockerfile,如果它已经坏了,再次使用以下内容构建和运行容器:

docker build
docker run -v xxx

由于您已经使用了MySQL数据中的卷似乎正确地备份了,因此出现的新容器应该有备份数据。

你可以这样做:

docker exec -it bash

进入容器并检查日志和数据。