如何利用Docker容器实现代理转发与数据备份详解

2020-06-17 06:52:48易采站长站整理

所以数据备份显得尤为重要。这里我们讨论体积较小的数据备份。

以我最近为团队搭建的知识库服务器为例。

该web应用是一个小型的python服务,以容器的形式部署在内网服务器上,支持在线编辑功能,以md文件的形式保存数据。

因为容器一旦发生故障则内部数据无法再访问,所以直接放在容器中肯定是不安全的,只能通过挂载文件的方式让容器和服务器共享数据读写。

那么通过什么方式对数据进行备份呢?这里我们选择GitHub的私有仓库来进行保存。原因有3个:

安全。数据不容易丢失和窃取。
方便,只需要通过git命令即可备份。
快速。由于备份的数据体积和数量并不大。

虽然方式已经确定,但要实现还有两个问题:

向GitHub仓库需要进行权限认证。
如何定时或自动提交数据到GitHub。

实现方法

首先按照容器单一指责的原则,我们应该创建一个新的容器用来执行备份任务。

这里我们我可以使用docker-compose或者其它编排工具来创建多个容器。

然后就是权限认证,在本机创建ssh key并加入到GitHub的设置中,这样使得容器可以推送文件到对应仓库。

不过现在只是服务器可以推送代码,容器还不行,所以还需要将.ssh文件拷贝到容器中。

最后是自动备份的实现,比较好的方式是每次文件有变动的时候提交并推送代码,但是目前并没有找到在容器中监听文件的简单方式,所以退而求其次,采用定时任务的策略,即每隔5分钟执行对应的git命令来提交和推送文件到仓库。

这里可以使用基于镜像busybox封装的轻量级的容器,将项目代码挂载到容器中保证文件的同步更新,然后启动cron服务来实现操作。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对软件开发网的支持。

您可能感兴趣的文章:详解Docker中容器的备份、恢复和迁移Docker网络代理设置详解详解为 Docker 设置代理Linux下使用docker搭建Openvpn代理的方法Ubuntu 16.04中Docker的安装和代理配置教程Docker设置代理的方法教程Docker配置HTTP/HTTPS代理的方法利用python自动生成docker nginx反向代理配置