正确的语法做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