hihell
hihell

Reputation: 946

mysql container broken, how to recover data?

our IT broke the mysql container and now it can not be started.

I understand that I can commit a new version and run it without entrypoint, so I can "exec -it" to enter and check what's wrong.

but how can I recover my data? inspect the old container and copy all files from mounted volume? (it seems a overkill for this problem, can I 'start' my container without entrypoint?)

what's the best practice for this problem?

Upvotes: 0

Views: 3273

Answers (2)

amittn
amittn

Reputation: 2355

I think as @kstromeiraos says you should first fix your Dockerfile if at all it's broken and again build and run the container using:

docker build
docker run -v xxx

Since you have used volumes from your MySQL data seems to be backed off properly, so the new container which comes up should have the backed up data.

You can do:

docker exec -it bash

and get into the container and check the logs and data.

Upvotes: 0

kstromeiraos
kstromeiraos

Reputation: 5027

If you have a mounted volume, your data is in a volume directory in your host, and there will be unless you delete it. So, fix your MySQL image and then create another MySQL container.

You should be able to fix your container by using docker attach or docker exec. You can even change container entrypoint using something like this: How to start a stopped Docker container with a different command?

But that's not a good approach. As stated in Best practices for writing Dockerfiles, Docker containers should be ephemeral, meaning this that they can be replaced easily for new ones. So, best option is destroy your container and create a new one.

Upvotes: 2

Related Questions