Docker 如何使用多个链接容器处理数据库存储/备份和应用程序日志?
我刚刚创建了我的第一个docker应用程序,我正在使用docker compose在我的客户端服务器上启动它:Docker 如何使用多个链接容器处理数据库存储/备份和应用程序日志?,docker,docker-compose,Docker,Docker Compose,我刚刚创建了我的第一个docker应用程序,我正在使用docker compose在我的客户端服务器上启动它: web: image: user/repo:latest ports: - "8080:8080" links: - db db: image: postgres:9.4.4 它通过8080端口公开RESTAPI(node.js)。RESTAPI使用Postgres数据库。它很好用。我的想法是,我将把这个文件(docker compose.yml)交
web:
image: user/repo:latest
ports:
- "8080:8080"
links:
- db
db:
image: postgres:9.4.4
它通过8080端口公开RESTAPI(node.js)。RESTAPI使用Postgres数据库。它很好用。我的想法是,我将把这个文件(docker compose.yml)交给我的客户,每次他想从repo中提取新的应用程序代码时(假设他有权访问user/repo
repo),他都会运行docker compose pull&&docker compose up-d
但是,我必须处理两项任务:数据库备份和日志备份
docker exec-it--rm db>sqlDump
。我对postgres不太了解,但在这种情况下,会在stdout上创建转储,而>sqlDump
会将其重定向到将在当前工作的主机上创建的文件sqlDump
然后,您可以将创建的转储文件包含到备份中。这可以通过主机上定义的cronjob完美地完成。但下一段将链接一个更好的解决方案/dbdata
是装载卷的位置,其中包含要备份的数据库数据:
docker run --volumes-from dbdata -v $(pwd):/backup <imageId> tar cvf /backup/backup.tar /dbdata
docker run --log-driver=syslog ...