【发布时间】:2020-07-20 16:01:50
【问题描述】:
我数周试图从我的 docker 进行备份,但没有任何成功。
我的 Docker 撰写:
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: user
MONGO_INITDB_ROOT_PASSWORD: password
networks:
- internal
volumes:
- /opt/rpg/mongo/data:/data/db
输入:docker exec mongo sh -c 'exec mongodump -d rpg --archive' > /home/rpg/all-collections.archive
输出:Failed: error getting collections for database rpg: error running listCollections. Database: rpg Err: command listCollections requires authentication
然后我尝试了密码
输入:docker exec mongo sh -c 'exec mongodump -d rpg —uri="mongodb://user:password@mongo:27017/rpg?authSource=admin" --archive' > /home/rpg/all-collections.archive
输出:SASL authentication step: Authentication failed.
经过数周的尝试,我得到了与:
sudo docker run -it --rm --network internal mongo \
mongo --host mongo \
-u user \
-p password \
--authenticationDatabase admin \
rpg
现在我可以看到收藏和所有内容,但我仍然无法获得备份。
也试过了:
输入:
sudo docker run --rm --network internal mongo \
mongodump --host mongo \
-u user \
-p password \
--authenticationDatabase admin \
--db rpg
> ~/rpg2-collections.archive
输出:
Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed.
没有成功,有人可以帮助我吗?
【问题讨论】:
-
你试过
mongodump --db dbName --username userName --password password --authenticationDatabase adminOrAnythingElse吗? -
是的,我做到了。 mongodump --db rpg --username 用户 --password 密码 --authenticationDatabase admin
-
结果如何?我建议您在容器内测试您的命令(使用
docker exec -it mongo sh)以绕过执行docker run可能出现的问题,并在找到正确的mongodump命令后,尝试从容器外部运行它。
标签: mongodb docker docker-compose backup