我们的IT打破了mysql容器,现在它无法启动。
我知道我可以提交一个新版本并在没有入口点的情况下运行它,所以我可以“exec -it”进入并查看错误。
但我该如何恢复数据呢?检查旧容器并从已装入的卷中复制所有文件? (这个问题似乎有点过头了,我可以'没有入口点'开始'我的容器吗?)
这个问题的最佳做法是什么?
答案 0 :(得分:2)
如果您已装入卷,则您的数据位于主机的卷目录中,除非您将其删除。因此,修复MySQL映像,然后创建另一个MySQL容器。
您应该可以使用docker attach
或docker 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
进入容器并检查日志和数据。