[英]Dump mongo database running on a docker container
I have this docker-compose.yml
file where I run a mongo container我有这个
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
I want to backup the database running a dump我想备份运行转储的数据库
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
I tried to modify the previous command but I am not able to connect and do the dump, I am getting我试图修改前面的命令,但我无法连接并进行转储,我得到了
2020-08-15T19:27:04.870+0000 Failed: can't create session: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: mongoapp:27027, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection(): dial tcp: lookup mongoapp on 192.168.65.1:53: no such host }, ] }
2020-08-15T19:27:04.870+0000 失败:无法创建 session:无法连接到服务器:服务器选择错误:服务器选择超时,当前拓扑:{ 类型:单一,服务器:[{ 地址:mongoapp:27027 ,类型:未知,State:已连接,平均 RTT:0,上次错误:连接():拨打 tcp:在 192.168.65.1:53 上查找 mongoapp:没有这样的主机},] }
I was able to dump/restore with the following commands我能够使用以下命令转储/恢复
dump倾倒
docker exec defymongo sh -c 'mongodump --archive -u {{mongouser}} -p {{mongopass}}' > ./mongodumps/dump_$(date '+%d-%m-%Y_%H-%M-%S').gz
restore恢复
docker exec -i defymongo sh -c 'mongorestore --archive -u {{mongouser}} -p {{mongopass}}' < ./mongodumps/dump_$(date '+%d-%m-%Y_%H-%M-%S').gz
The difference is here the commands use sh -c
to execute mongorestore
and pass parameters with authentication values.不同之处在于命令使用
sh -c
执行mongorestore
并使用身份验证值传递参数。
This is not enough to backup Strapi
.这不足以备份
Strapi
。 Probably there are some values inside the /src/app
folder in Strapi
that should also be backed up Strapi
中的/src/app
文件夹中可能有一些值也应该备份
Hopefully this will helps someone else希望这对其他人有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.