2017-06-26 45 views
0

我們的IT打破了mysql容器,現在無法啓動。mysql容器壞了,如何恢復數據?

我知道我可以提交一個新版本並在沒有入口點的情況下運行它,所以我可以「exec -it」來輸入並檢查出了什麼問題。

但我該如何恢復我的數據?檢查舊容器並從安裝的卷中複製所有文件? (這似乎是一個矯枉過正的問題,我可以'開始'我的容器沒有入口點?)

這個問題的最佳做法是什麼?

+0

想要恢復所有數據而不復制任何數據? – EJP

+0

@EJP是的,我想恢復所有的數據通過修復破碎的容器 – hihell

回答

1

如果您已安裝卷,則您的數據位於主機的卷目錄中,除非您將其刪除。所以,修復你的MySQL鏡像,然後創建另一個MySQL容器。

您應該能夠使用docker attachdocker exec來修復您的容器。你甚至可以用這樣的東西改變容器入口點:How to start a stopped Docker container with a different command?

但是這不是一個好方法。如Best practices for writing Dockerfiles中所述,Docker容器應該是短暫的,這意味着它們可以很容易地替換爲新的容器。所以,最好的選擇是銷燬你的容器並創建一個新的容器。

+0

謝謝你的指導:)(基本上「如何啓動停止...」是要求你創建另一個容器,而不是修復它) – hihell

0

我覺得作爲@kstromeiraos說,你應該先解決您的Dockerfile如果在所有它的分解和重新構建和運行使用的容器:

docker build 
docker run -v xxx 

既然你已經從你的MySQL數據使用量似乎回退正確的,所以出現的新容器應該有備份的數據。

你可以這樣做:

docker exec -it bash 

,進入容器中並檢查日誌和數據。