每次有一个新的数据库,都要琢磨着配置一个备份。当然你可能有一个祖传的 shell 脚本,重新配置一下放到 crontab 里就可以了。但是无论是查看和修改配置,还是查看 crontab 都不是那么方便。

今天介绍一个 Docker 镜像,只需要简单的配置启动,就可以。地址在这里:https://hub.docker.com/r/deitch/mysql-backup/但你也许不需要点开链接,先看完我的例子吧。

version: '3.7'services: backup: image: databack/mysql-backup volumes: - /root/dbbackup:/db environment: - DB_DUMP_TARGET=/db - DB_USER=root - DB_PASS=root - DB_SERVER=xxx.xxx.xxx.xxx user: root deploy: placement: constraints: - node.id == YOURDOCKERSWARMNODEID

讲要点

Version

我用了最新版的 docker-compose 格式,优点就是不用在装 docker-compose … 使用新版 Docker 自带的docker stack -c backup.yml backup这样子启动 stack 就好。这样机器就只用装 docker 一个包。
如果你想用旧版的 docker-compose 点开上边作者的 readme 里有例子。

Volumes

这个镜像支持备份到本地,文件服务器,云端。这里是备份到本地,需要 mkdir 创造一个目录,并且 mount 到容器上。备份云端自行去看相关的环境变量,就不用挂载数据卷了。

Environment

众所周知用 docker 镜像输入和配置就靠环境变量了,像我这样备份到本地可以复制我这个,记得填写服务器地址,也可以是 compose 或者 stack 中的一个QQ拍卖服务名称。别的情况就去 readme 中看说明吧。

User

这个作者比较谨慎,容器里居然用了 1005 的 uid ,存储用云端不用管,用本地就没权限了,这里让容器用 root 运行。

Deploy

这个是 docker stack 的配置,这里为了让它只在一个机器启动一个实例,你要是 swarm 就一个机器也可以不配置这个。要是多个机器,要用docker node ls看一下,填个指定 id 进来,相应的你就在那个机器上建目录了。


就这样,主要只是给大家介绍一下存在这么个东西。有需要可以自己看说明的。我还搞过云函数+对象存储的备份方案,比如腾讯云的 scf+cos ,好处是不要服务器也基本不要钱……但还是比复制粘贴个配置文件启动 docker 服务麻烦太多了。


更多相关文章

  1. 【案例】星环科技原厂数据备份恢复软件,让大数据与AI应用有备无患
  2. 云端的SRE发展与实践
  3. 详解持续数据保护(CDP)和数据副本管理(CDM)技术
  4. 详谈持续数据保护(CDP)和数据副本管理(CDM)技术
  5. 聊聊运维(1)证明你是坏运维的七个迹象,不要做CPR运维
  6. 详解 linux 系统备份与还原
  7. Docker 镜像的备份恢复迁移
  8. XpmJS —— 小程序后端开发思考和实践
  9. 分布式存储到底需不需要备份?

随机推荐

  1. 线程池你真不来了解一下吗?
  2. 多线程之死锁就是这么简单
  3. VSCode跳转到定义内部实现_VSCode插件开
  4. ES2018
  5. TypescriptServerPlugin_VSCode插件开发
  6. Taro
  7. Android(安卓)源码导入Eclipse技巧(Ubuntu
  8. Android(安卓)调用摄像头功能【拍照与视
  9. 选中菜单android中的显示跳转和隐式跳转
  10. SimpleCropView 裁剪图片