--- title: 透過 Docker 啟動的 MongoDB 備份方式 tags: Docker, MongoDB description: backup mongodb on docker. --- 透過 Docker 啟動的 MongoDB 備份方式 ========= 既然透過容器方式執行 mongodb 基本上就不太會裝mongo 在本機上 所以可以透過容器方式把檔案給備份出來 完整指令如下 ```bash= docker run --rm -v $(pwd):/data/db -w /data/db -u $(id -u) mongo mongodump -h 192.168.0.5 --db mydbname --out ./dump ``` **docker run** 指令執行一個容器 '--rm' 表示 當容器停止後自動刪除該容器屍體 '-v' 掛載硬碟,這邊透過 **$(pwd)** 取得當前下指令的位置映射到容器內的 **/data/db** '-w' 設定容器執行的工作目錄位置 '-u' 預設用戶是root,這邊設定為當前用戶,如果沒有設定,在非root用戶時會出現下面錯誤 > 2019-06-03T03:12:30.082+0000 Failed: error dumping metadata: error creating directory for metadata file dump/mydbname: mkdir dump: permission denied **mongo mongodump** 後面指令都是屬於 mongo client的 '-h' 連接的DB主機位置 '--db' 指定的DB名稱 '--out' 寫出到指定目錄 '--gzip' 當然也可以使用 gzip 壓縮 '--archive' 或是包成 archive 檔案這類指令 **mongo mongorestore** 同樣的也可以透過這個方式,使用 mongorestore 把資料倒回去 ```bash= docker run --rm -v $(pwd):/backup -w /backup -u $(id -u) mongo mongorestore -h 192.168.0.5 -d dbname ./somebackupdir/name ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up