正确的语法做mongoDb docker实例的mongodump?

我正在运行带有一些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 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? 

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

为备份命令创build第二个撰写文件: 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