本文介绍了正确的语法来执行mongoDb docker实例的mongodump?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在运行带有某些Docker容器的ubuntu 16.04 LTS服务器。这些容器之一是mongoDB容器,用于存储我的数据。
现在,我尝试通过 mongodump 进行备份。
我的问题是,mongoDb作为docker容器运行,并且备份应存储在docker容器之外。

I'm running an ubuntu 16.04 LTS server with some docker container. One of these containers is a mongoDB container, where my data is stored.Now I'm trying to make a backup by mongodump. The problem for me is, that mongoDb is running as a docker container, and the backup should be stored outside of the docker container.

我认为语法因为这样的事情是这样的:

I think the syntax for this is something like this:

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

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

But I'm not sure for the parameters I have to use...

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

This is what I get for my mongoDb container via docker ps:

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

这是我的docker-compose文件:

And this is my docker-compose file:

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容器相同的网络上创建新容器。如果您有任何撰写网络定义,则需要在每个撰写文件中复制它们。

Define the backup to run via compose as well. This will create the new container on the same network as the main mongo container. If you have any compose network definitions you will need to duplicate them in each compose file.

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

Create a second compose file for the backup command: 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 docker实例的mongodump?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 12:22