Docker 上で動いている MongoDB からダンプを取得する
今日は、バックアップの取り方の簡単なメモを残していきます
コマンド書式
認証なし
$ docker exec {{コンテナ名}} mongodump --out {{ダンプ出力先}}
認証あり
$ docker exec {{コンテナ名}} mongodump --username {{ユーザー名}} --password {{パスワード}} --authenticationDatabase admin --out {{ダンプ出力先}}
実行
$ docker exec mongo mongodump --username microai --password xxxxxxx --authenticationDatabase admin --out /data/backup/
2024-05-03T22:24:39.355+0000 writing admin.system.users to /data/backup/admin/system.users.bson
2024-05-03T22:24:39.356+0000 done dumping admin.system.users (1 document)
2024-05-03T22:24:39.356+0000 writing admin.system.version to /data/backup/admin/system.version.bson
2024-05-03T22:24:39.356+0000 done dumping admin.system.version (2 documents)
2024-05-03T22:24:39.356+0000 writing microAI.prompts to /data/backup/microAI/prompts.bson
2024-05-03T22:24:39.357+0000 writing microAI.users to /data/backup/microAI/users.bson
2024-05-03T22:24:39.357+0000 writing microAI.ais to /data/backup/microAI/ais.bson
2024-05-03T22:24:39.358+0000 done dumping microAI.ais (4 documents)
2024-05-03T22:24:39.359+0000 done dumping microAI.users (1 document)
2024-05-03T22:24:39.361+0000 done dumping microAI.prompts (3 documents)
ホストにファイルをコピーする
私の場合は、mongodb の起動時にホストのディレクトリをマウントしていなかったので、今取ったダンプをホストにコピーします。
コマンド書式
$ docker cp {{コンテナ名}}:{{ダンプ出力先}} {{ホストのパス}}
実行
$ docker cp mongo:/data/backup/ ~/mongodb-backup/
Successfully copied 21kB to /Users/home/mongodb-backup/
$ cd /Users/home/mongodb-backup/
$ ls
admin microAI
コピーできました🍺