2016-10-11 48 views
1

我使用docker來託管mongo數據庫,現在我試圖轉儲整個數據庫。一切工作正常,除了沒有創建文件。根本沒有錯誤。 這是我的嘗試:docker中的mongodump不會創建任何文件

docker exec -ti mongodb mongodump --out /backup --host localhost -u admin -p admin 

我使用的是從DockerHub tutum/mongodb圖像。 這個充滿日誌命令執行後:http://pastebin.com/SXCqv16v

編輯:輸出的docker inspect mongodbhttp://pastebin.com/5sdheAwK

我的搬運工,compose.yml文件:http://pastebin.com/JmfKbtdJ

+1

它將備份寫入/備份_inside_碼頭容器,除非您在啓動mongo碼頭工具時共享該卷。您可以發送碼頭運行命令或'碼頭檢查mongodb'的輸出 –

+0

@JamieMcCrindle我已更新我的問題 – Alen

+0

備份正在寫入,但它正在寫入容器內。我假設你想在碼頭之外?例如在Docker主機的/ backup目錄中 –

回答

0

我相信,你只需要映射/備份目錄到碼頭主機上的卷。改變你的搬運工撰寫的MongoDB條目(與主機上的相應文件夾替換/ hostbackupdir)

mongodb: 
    image: tutum/mongodb 
    environment: 
    - MONGODB_PASS=admin 
    - MONGODB_USER=admin 
    container_name: mongodb 
    volumes: 
    - /hostbackupdir:/backup 

注:這可能不是一個壞主意,也是你的主機上映射你的/數據/ db目錄一太。這將是這樣的(與主機上相應的文件夾替換/ hostbackupdir和/ hostdatadir):

mongodb: 
    image: tutum/mongodb 
    environment: 
    - MONGODB_PASS=admin 
    - MONGODB_USER=admin 
    container_name: mongodb 
    volumes: 
    - /hostbackupdir:/backup 
    - /hostdatadir:/data/db 
+0

不工作,我在主機內創建/備份文件夾,並按照指示更新docker-compose,但/ backup目錄爲空 – Alen

0

這是我如何解決它。問題在於將主機文件夾與容器文件夾綁定在一起:

mongodb: 
    image: tutum/mongodb 
    environment: 
    - MONGODB_PASS=admin 
    - MONGODB_USER=admin 
    container_name: mongodb 
    volumes: 
    - ../backup:/backup 
相關問題