9
使用docker運行MongoDB容器非常容易。雖然每次啓動一個新的MongoDB容器時,都會得到新的空數據庫。如何在容器重啓之間持久化MongoDB數據?
我應該怎麼做才能在容器重啓之間保持數據庫內容?我嘗試使用-v選項將外部目錄綁定到容器,但沒有任何成功。
使用docker運行MongoDB容器非常容易。雖然每次啓動一個新的MongoDB容器時,都會得到新的空數據庫。如何在容器重啓之間持久化MongoDB數據?
我應該怎麼做才能在容器重啓之間保持數據庫內容?我嘗試使用-v選項將外部目錄綁定到容器,但沒有任何成功。
我試過使用ehazlett/mongodb
圖片,它工作正常。
有了這張圖片,你可以很容易地指定mongo用DATA_DIR env變量存儲數據的位置。我相信它也不會太難改變你的形象。
這裏是我做過什麼:
mkdir test; docker run -v `pwd`/test:/tmp/mongo -e DATA_DIR=/tmp/mongo ehazlett/mongodb
通知`pwd`
在-v
內,爲服務器和客戶端可能有不同的路徑,它以指定的絕對路徑是很重要的。
使用此命令,我可以根據需要運行mongo儘可能多的時間,並且數據庫將始終存儲在我剛剛創建的./test
目錄中。
這是我在Docker v0.5.x中爲MySQL/Postgres所用的方法。不確定1.0是否會有不同的解決方案。 – amattn
非常感謝Guillaume!有效。對於像我這樣的Vagrant用戶來說,還有一點需要注意:不要將mongo目錄放在虛擬機的vagrant目錄中,mongo不能鎖定該目錄中的文件並立即退出。 –
這是否可以在windows boot2docker上運行?我試過但是它返回一個錯誤ERROR:日誌文件的可用空間不足並且從未啓動 – Astronaut