Docker 上で動いている MongoDB からダンプを取得する

Saturday, May 18, 2024

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
コピーできました🍺


Docker に MongoDB コンテナを立ち上げる
Docker 上で動く MongoDB にデータをインポートする