gpt4 book ai didi

mongodb - 正确的语法来执行 mongoDb docker 实例的 mongodump?

转载 作者:行者123 更新时间:2023-12-02 18:15:29 25 4
gpt4 key购买 nike

我正在运行带有一些 docker 容器的 ubuntu 16.04 LTS 服务器。其中一个容器是 mongoDB 容器,其中存储了我的数据。现在我正在尝试通过 mongodump 进行备份。我的问题是,mongoDb 作为 docker 容器运行,备份应该存储在 docker 容器之外。

我认为它的语法是这样的:

docker run \
--rm \
-it \
--link DOCKER_CONTAINER_NAME:mongo_alias \
-v /backup:/backup \
mongo mongodump \
--host mongo_alias \
--out /backup/

但我不确定我必须使用的参数...

这是我通过 docker ps 为我的 mongoDb 容器获得的:

7bee41bfa08a  mongo:3.4  "docker-entrypoint..."   4 months ago   Up 2 months   27017/tcp   mongo_db

这是我的 docker-compose 文件:

version: "3"
services:
mongo_db:
container_name: mongo_db
image: 'mongo:3.4'
restart: 'always'
volumes:
- '/opt/mongo/project/live:/data/db'

所以它应该是这样的?

docker run \
--rm \
-it \
--link mongo_db:mongo_alias \ # mongo_alias can be choosen freely?
-v /backup:/backup \ # Don't understand /backup:/backup
mongo mongodump \
--host mongo_alias \
--out /backup/ # This is in the root of the server?

最佳答案

定义备份以通过 compose 运行。这将在与主 mongo 容器相同的网络上创建新容器。如果您有任何 compose 网络定义,则需要在每个 compose 文件中复制它们。

为备份命令创建第二个组合文件:docker-compose-backup.yml

version: "3"
services:
mongo_db_backup:
image: 'mongo:3.4'
volumes:
- '/opt/mongo/project/live_backup:/backup'
command: |
mongodump --host mongo_db --out /backup/

然后运行备份

docker-compose -f docker-compose-backup.yml run mongo_db_backup

关于mongodb - 正确的语法来执行 mongoDb docker 实例的 mongodump?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46438659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com