iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >怎么利用Docker容器实现代理转发与数据备份
  • 185
分享到

怎么利用Docker容器实现代理转发与数据备份

2024-04-02 19:04:59 185人浏览 泡泡鱼
摘要

这篇文章主要介绍“怎么利用Docker容器实现代理转发与数据备份”,在日常操作中,相信很多人在怎么利用Docker容器实现代理转发与数据备份问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

这篇文章主要介绍“怎么利用Docker容器实现代理转发与数据备份”,在日常操作中,相信很多人在怎么利用Docker容器实现代理转发与数据备份问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么利用Docker容器实现代理转发与数据备份”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

代理转发

默认情况下容器之间的网络是互相隔离的,但是对于一些有关联的应用而言(web前端容器和服务端容器以及数据库容器),一般会把它们划分到一个独立的桥接子网络(以下简称子网),使得这些容器之间可以相互通信,但同时又与外部进行隔离。

对于需要对子网外部提供访问的容器,可以将端口映射到服务器主机上。整个结构大致如下:

怎么利用Docker容器实现代理转发与数据备份

上面的端口映射只解决了服务器(宿主机)访问容器网络服务的问题,如果我们要从本地机器上通过因特网访问服务器上的容器,一般是不行的,因为服务器除了安全考虑,默认情况下会启用防火墙,并只开放22等少数几个端口。

对于传统的网络进程,实现方式就是通过反向代理服务器来对网络请求进行转发,比如使用Nginx配置如下代理:

# 针对不同路径进行转发
server {
 listen  80;               
 server_name www.xx.com;            

 location /a {
  proxy_pass localhost:1234;
 }
 location /b {
  proxy_pass localhost:2234;
 }
}
# 针对不同域名进行转发
server {
 listen  80;               
 server_name www.yy.com;            

 location / {
  proxy_pass localhost:1234;
 }
}

那么此时问题似乎是解决了,但是如果nginx也是在容器中运行呢?

刚才我们提到子网对于外部的容器是隔离的,那么nginx容器将无法访问这些对外服务。

你可能很容想到把nginx容器划分到对应的子网络这种方式,容器的确支持多个子网的配置,但是这种操作方式的麻烦在于,每次新增子网时都需要修改nginx容器的网络配置并重启容器。

所以比较好的方式是将nginx设置为host网络模式。放弃nginx容器与服务器的隔离性,直接与服务器共享网络和端口。那么nginx容器即可直接访问所有映射了端口的容器。

如下图所示:

怎么利用Docker容器实现代理转发与数据备份

数据备份

应用场景

考虑到速度和安全性方面的问题,通常公司会有一些只供内网访问的服务器。但是这些服务器上的数据包括服务器本身都是随时可能被修改或者发生故障的。

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

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

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

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

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

  • 安全。数据不容易丢失和窃取。

  • 方便,只需要通过git命令即可备份。

  • 快速。由于备份的数据体积和数量并不大。

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

  • 向github仓库需要进行权限认证。

  • 如何定时或自动提交数据到github。

实现方法

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

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

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

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

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

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

到此,关于“怎么利用Docker容器实现代理转发与数据备份”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么利用Docker容器实现代理转发与数据备份

本文链接: https://www.lsjlt.com/news/96373.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么利用Docker容器实现代理转发与数据备份
    这篇文章主要介绍“怎么利用Docker容器实现代理转发与数据备份”,在日常操作中,相信很多人在怎么利用Docker容器实现代理转发与数据备份问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • 如何利用Redis实现数据备份与恢复
    如何利用Redis实现数据备份与恢复随着大数据时代的到来,数据备份和恢复变得越来越重要。Redis作为一种高性能的内存数据库,不仅可以提供快速的数据访问能力,还可以通过持久化功能实现数据的备份和恢复。本文将介绍如何利用Redis的持久化功能...
    99+
    2023-11-07
    redis 恢复 数据备份
  • Docker存储管理方式以及容器数据的备份与恢复
    这篇文章主要讲解了“Docker存储管理方式以及容器数据的备份与恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker存储管理方式以及容器数据的备份...
    99+
    2024-04-02
  • Docker容器怎么定时备份数据库并发送到指定邮箱
    今天就跟大家聊聊有关Docker容器怎么定时备份数据库并发送到指定邮箱,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、背景:一开始的初衷是,想写一个脚本来监控服务器的高占用率进程并...
    99+
    2023-06-22
  • mongodb数据备份与恢复怎么实现
    要在MongoDB中实现数据备份和恢复,可以使用以下方法:备份数据:1. 使用mongodump命令来备份数据。该命令可以导出整个数...
    99+
    2023-10-20
    mongodb
  • 怎么通过shell脚本实现mysql数据备份与清理
    本篇内容介绍了“怎么通过shell脚本实现mysql数据备份与清理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SCRIPTubuntu 上...
    99+
    2023-06-04
  • 怎么在MySQL中实现数据备份与还原
    本篇文章为大家展示了怎么在MySQL中实现数据备份与还原,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、数据备份1、使用mysqldump命令备份mysqldum...
    99+
    2024-04-02
  • Mysql数据库中怎么实现备份与还原
    这篇文章给大家介绍Mysql数据库中怎么实现备份与还原,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。import java.io.IOException;import java.tex...
    99+
    2024-04-02
  • PHP怎么实现MySQL数据库备份与恢复
    这篇“PHP怎么实现MySQL数据库备份与恢复”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP怎么实现MySQL数据库备...
    99+
    2023-07-06
  • MySQL数据库中怎么实现备份与恢复
    MySQL数据库中怎么实现备份与恢复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、数据库备份的一些概念1.造成数据丢失的原...
    99+
    2024-04-02
  • 使用golang怎么实现mysql数据库备份
    这期内容当中小编将会给大家带来有关使用golang怎么实现mysql数据库备份,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。map & json,在处理主键与外键...
    99+
    2024-04-02
  • 怎么实现Docker容器之间的数据传输
    小编给大家分享一下怎么实现Docker容器之间的数据传输,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!从容器中将文件拷贝到宿主机上。在宿主机你想要接收文件的地方,运行下面的指令docker cp 容器i...
    99+
    2023-06-29
  • 通过Docker Compose、Nginx和MariaDB实现PHP应用程序的数据备份与还原
    随着云计算和容器化技术的快速发展,越来越多的应用程序选择使用Docker来部署和运行。在Docker生态系统中,Docker Compose是一个非常受欢迎的工具,它可以通过一个单一的配置文件来定义和管理多个容器。本文将介绍如何使用Dock...
    99+
    2023-10-21
    Docker 数据备份 数据还原
  • 怎么利用数据库触发器实现数据的同步
    本篇内容主要讲解“怎么利用数据库触发器实现数据的同步”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用数据库触发器实现数据的同步”吧!一、什么是触发器数据库...
    99+
    2024-04-02
  • 怎么用批处理实现文件备份器V2.3
    这篇文章将为大家详细讲解有关怎么用批处理实现文件备份器V2.3,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:@echo off ::::::::::::::::::::::::::::...
    99+
    2023-06-09
  • 利用overlay怎么实现docker容器间跨宿主机通信
    这期内容当中小编将会给大家带来有关利用overlay怎么实现docker容器间跨宿主机通信,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。overlay网络解析内置跨主机的网络通信一直是Docker备受期待...
    99+
    2023-06-06
  • 怎么使用Nginx实现端口转发TCP代理
    本篇内容介绍了“怎么使用Nginx实现端口转发TCP代理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求产生背景最近同事在测试和生产环境中...
    99+
    2023-06-22
  • 如何利用 PHP 容器技术实现高效的大数据处理与响应?
    随着大数据时代的到来,数据处理和响应速度成为了企业发展的关键因素之一。PHP 作为一门强大的编程语言,能够很好地处理和响应大数据。而容器技术则是一个非常好的解决方案,可以帮助我们实现高效的大数据处理和响应。本文将介绍如何利用 PHP 容器技...
    99+
    2023-06-15
    容器 响应 大数据
  • sql server中怎么通过查询分析器实现数据库备份与恢复
    这篇文章将为大家详细讲解有关sql server中怎么通过查询分析器实现数据库备份与恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。sql server的...
    99+
    2024-04-02
  • Linux下怎么用shell实现每天定时备份mysql数据库
    这篇文章主要讲解了“Linux下怎么用shell实现每天定时备份mysql数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下怎么用shell实现每天定时备份mysql数据库”吧...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作