我們的IT打破了mysql容器,現在無法啓動。mysql容器壞了,如何恢復數據?
我知道我可以提交一個新版本並在沒有入口點的情況下運行它,所以我可以「exec -it」來輸入並檢查出了什麼問題。
但我該如何恢復我的數據?檢查舊容器並從安裝的卷中複製所有文件? (這似乎是一個矯枉過正的問題,我可以'開始'我的容器沒有入口點?)
這個問題的最佳做法是什麼?
我們的IT打破了mysql容器,現在無法啓動。mysql容器壞了,如何恢復數據?
我知道我可以提交一個新版本並在沒有入口點的情況下運行它,所以我可以「exec -it」來輸入並檢查出了什麼問題。
但我該如何恢復我的數據?檢查舊容器並從安裝的卷中複製所有文件? (這似乎是一個矯枉過正的問題,我可以'開始'我的容器沒有入口點?)
這個問題的最佳做法是什麼?
如果您已安裝卷,則您的數據位於主機的卷目錄中,除非您將其刪除。所以,修復你的MySQL鏡像,然後創建另一個MySQL容器。
您應該能夠使用docker attach
或docker exec
來修復您的容器。你甚至可以用這樣的東西改變容器入口點:How to start a stopped Docker container with a different command?
但是這不是一個好方法。如Best practices for writing Dockerfiles中所述,Docker容器應該是短暫的,這意味着它們可以很容易地替換爲新的容器。所以,最好的選擇是銷燬你的容器並創建一個新的容器。
謝謝你的指導:)(基本上「如何啓動停止...」是要求你創建另一個容器,而不是修復它) – hihell
我覺得作爲@kstromeiraos說,你應該先解決您的Dockerfile如果在所有它的分解和重新構建和運行使用的容器:
docker build
docker run -v xxx
既然你已經從你的MySQL數據使用量似乎回退正確的,所以出現的新容器應該有備份的數據。
你可以這樣做:
docker exec -it bash
,進入容器中並檢查日誌和數據。
想要恢復所有數據而不復制任何數據? – EJP
@EJP是的,我想恢復所有的數據通過修復破碎的容器 – hihell