我docker-compose.yml
在运行mongo容器的地方有这个文件
version: '3'
services:
appapi:
container_name: appapi
image: strapi/strapi:3.1.3
environment:
DATABASE_CLIENT: ${APPAPI_DATABASE_CLIENT}
DATABASE_HOST: ${APPAPI_DATABASE_HOST}
DATABASE_PORT: ${APPAPI_DATABASE_PORT}
DATABASE_NAME: ${APPAPI_DATABASE_NAME}
DATABASE_USERNAME: ${APPAPI_DATABASE_USERNAME}
DATABASE_PASSWORD: ${APPAPI_DATABASE_PASSWORD}
ports:
- 1337:1337
volumes:
- ./app:/srv/app
depends_on:
- appmongo
appmongo:
container_name: appmongo
image: mongo:4.4.0
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${APPDB_MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${APPDB_MONGO_INITDB_ROOT_PASSWORD}
ports:
- "27027:27017"
volumes:
- ./data/db:/data/db
我想备份运行转储的数据库
docker run -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin --rm mongo mongodump --host mongoapp:27027 --archive --gzip | cat > ./mongodumps/dump_$(date '+%d-%m-%Y_%H-%M-%S').gz
我试图修改前面的命令,但无法连接并执行转储,我得到了
2020-08-15T19:27:04.870 + 0000失败:无法创建会话:无法连接到服务器:服务器选择错误:服务器选择超时,当前拓扑:{类型:单个,服务器:[{地址:mongoapp:27027 ,类型:未知,状态:已连接,平均RTT:0,最后一次错误:connection():拨号tcp:在192.168.65.1:53上查找mongoapp:没有这样的主机},]}
我能够使用以下命令转储/还原
倾倒
docker exec defymongo sh -c 'mongodump --archive -u {{mongouser}} -p {{mongopass}}' > ./mongodumps/dump_$(date '+%d-%m-%Y_%H-%M-%S').gz
恢复
docker exec -i defymongo sh -c 'mongorestore --archive -u {{mongouser}} -p {{mongopass}}' < ./mongodumps/dump_$(date '+%d-%m-%Y_%H-%M-%S').gz
区别在于,命令用于sh -c
执行mongorestore
和传递带有验证值的参数。
这还不足以进行备份Strapi
。/src/app
文件夹中可能有一些值Strapi
也应该备份
希望这会帮助别人
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句