Docker+Redis监控新方案:cpolar让远程管理“零配置”

**前言:**Redis作为高性能缓存数据库,通过Docker部署实现了环境标准化:一行命令即可启动带持久化配置的容器,数据自动映射到本地磁盘。这套组合特别适合开发团队------测试环境与生产配置保持一致,避免"本地能跑线上崩"的尴尬。

实际运维中发现两个核心优势:容器隔离保护主机系统安全,动态扩缩容应对流量波动。但传统部署只能在局域网监控,曾发生过周末服务器内存溢出,直到周一上班才发现的生产事故。

接入cpolar内网穿透后实现质变:现在通过手机就能查看实时键值数据,设置内存使用率告警阈值。上周异地调试时,直接用公网地址连接Redis Desktop Manager,三分钟定位到分布式锁失效问题,比传统VPN方案节省至少两小时。

本文主要介绍如何在Ubuntu使用Docker部署Redis容器并结合cpolar内网穿透工具实现无公网ip环境远程访问本地数据库。

下面就来一起看看吧。

目录

[1. 安装Docker步骤](#1. 安装Docker步骤)

[2. 使用docker拉取redis镜像](#2. 使用docker拉取redis镜像)

[3. 启动redis容器](#3. 启动redis容器)

[4. 本地连接测试](#4. 本地连接测试)

[5. 公网远程访问本地redis](#5. 公网远程访问本地redis)


1. 安装Docker步骤

本文中使用的操作系统为Ubuntu 22.04

**添加Docker源**

复制代码
```shell

# Add Docker's official GPG key:

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg



# Add the repository to Apt sources:

echo \

  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \

  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \

  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

```

**安装 Docker 包**

复制代码
```shell

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

```

**通过运行映像来验证 Docker 引擎安装是否成功**

复制代码
```shell

sudo docker run hello-world

```

此命令下载测试映像并在容器中运行它。当容器运行,它打印确认消息并退出。

2. 使用docker拉取redis镜像

首先在终端中执行下方命令拉取镜像:

复制代码
```shell

sudo docker pull redis

```

然后执行查看镜像命令:

复制代码
```shell

sudo docker images

```

可以看到成功拉取了Redis镜像。

3. 启动redis容器

在启动容器前,需要简单修改一下Redis外部挂载的配置文件。

本教程中,首先创建了/usr/local/redis/conf/redis.conf文件,

然后使用nano编辑器写入了网上找的redis.conf文件,保存后退出编辑器。

复制代码
```shell

#任何ip可以访问

bind 0.0.0.0

#守护进程

#daemonize yes

daemonize yes

#不启用保护模式

protected-mode no

#指定redis运行的端口

port 6379

tcp-backlog 511

timeout 0

#持久化⽂件名称

dbfilename xdclass.rdb

#持久化⽂件存储路径

dir /data/

#持久化策略, 10秒内有个1个key改动,执⾏快照

save 10 1

######之前配置######

#导出rdb数据库⽂件压缩字符串和对象,默认是yes,会浪费CPU但是节省空间

rdbcompression yes

# 导⼊时是否检查

rdbchecksum yes

#aof持久化配置

#appendonly yes

#appendfilename "appendonly.aof"

#appendfsync everysec

# aof重写期间是否同步

no-appendfsync-on-rewrite no

# 重写触发配置

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

# 加载aof时如果有错如何处理

# yes表示如果aof尾部⽂件出问题,写log记录并继续执⾏。

no表示提示写⼊等待修复后写⼊

aof-load-truncated yes

```

接下来在终端中执行下方命令启动容器:

复制代码
```

sudo docker run -p 6379:6379 --name redis -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

```

这里我给容器的名称起为redis,您可以根据需要替换成其他名称。

然后执行下方命令查看容器是否正在运行:

复制代码
```shell

sudo docker ps

```

可以看到刚才创建的myredis容器正在运行中。

4. 本地连接测试

4.1 安装redis图形化界面工具

现在我们已经在docker中本地部署了redis容器,如果要在本地进行连接测试,

可以下载redis图形化界面工具:Redis Desktop Manager

下载地址:https://pan.baidu.com/s/19FLBKyQkRlK4ktZFRg3j6Q?pwd=6666

提取码:6666

4.2 使用RDM连接测试

默认安装完成后,点击左下红框位置的连接redis server按钮:

在弹出的窗口中,需要填入本机ip地址和redis的端口号:

输入后点击连接测试,如看到弹出框提示成功连接,即本地连接redis测试成功。

5. 公网远程访问本地redis

不过我们目前只能在本地使用刚刚部署的Jupyer Notebook,如果身在异地,想要远程访问在本地部署的redis容器,但又没有公网ip怎么办呢?

我们可以使用cpolar内网穿透工具来实现无公网ip环境下的远程访问需求。

5.1 内网穿透工具安装

下面是安装cpolar步骤:

> cpolar官网地址: https://www.cpolar.com(https://www.cpolar.com/)

  • 使用一键脚本安装命令

    shell 复制代码
    curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务

    shell 复制代码
    sudo systemctl enable cpolar
  • 启动cpolar服务

    shell 复制代码
    sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

5.2 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:redis

  • 协议:TCP

  • 本地地址:6379

  • 端口类型:随机临时TCP端口

  • 地区:选择China Top

点击`创建`

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑(异地)上,将该地址与端口号分别复制到Redis Desktop Manager访问即可。

如下图所示,ip地址位置填写:12.tcp.cpolar.top,端口号填写:13983 ,点击链接测试:

可以看到连接成功!

**小结**

为了方便演示,我们在上边的操作过程中使用了cpolar生成的TCP公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问Redis的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的TCP地址的方式来远程访问。

5.3 使用固定TCP地址远程访问

接下来保留一个固定TCP地址,登录cpolar官网(https://www.cpolar.com/),点击左侧的预留,找到保留的TCP地址,为远程服务器连接保留一个固定的地址:

  • 地区:选择**China VIP**

  • 描述:即备注,可自定义,本例使用red123

点击`保留`

地址保留成功后,复制生成的公网地址,打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到我们刚才创建的随机公网地址隧道 **redis**,点击`编辑`

修改隧道信息,将刚才保留成功的固定TCP地址配置到隧道中

  • 端口类型:选择固定TCP端口

  • 预留的TCP地址:复制粘贴官网保留成功的地址,本例中为:1.tcp.vip.cpolar.cn:23876

点击`更新`

隧道更新成功后,点击左侧仪表盘的状态------在线隧道列表,可以看到公网地址已经更新为了**固定TCP地址。**

接下来与之前的操作一样,可以在其他电脑(异地)上,使用这个固定的TCP地址访问redis即可。

ip地址位置填写:1.tcp.vip.cpolar.cn,端口号填写:23876 ,点击链接测试:

可以看到,使用固定的TCP地址成功远程连接了本地Redis!使用cpolar内网穿透工具无需购买域名服务器,也不用设置路由器那么麻烦,轻松实现大家在公网远程访问本地服务的需求!

**从本地容器到全球访问,Redis监控从未如此简单直接!**

本篇文章知识点来源cpolar官网https://www.cpolar.com

  1. cpolar博客:配置二级子域名: https://www.cpolar.com/blog/configure-the-secondary-subdomain-name(https://www.cpolar.com/blog/configure-the-secondary-subdomain-name)

  2. cpolar博客:配置自定义域名: https://www.cpolar.com/blog/configure-your-own-domain-name(https://www.cpolar.com/blog/configure-your-own-domain-name)

  3. cpolar博客:配置固定TCP端口地址: https://www.cpolar.com/blog/configure-fixed-tcp-port-address(https://www.cpolar.com/blog/configure-fixed-tcp-port-address)

  4. cpolar博客:配置固定FTP地址: https://www.cpolar.com/blog/configure-fixed-ftp-address(https://www.cpolar.com/blog/configure-fixed-ftp-address)

相关推荐
xixiaoyunya2 小时前
内网穿透工具选型分析:从 ngrok 的局限性看国内开发场景下的替代方案
网络
FreeTinker2 小时前
远程查看的技术路径与工程选型分析
网络
卷无止境3 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
阿里巴巴P8资深技术专家4 小时前
Redis连接工具 —— Redis Manager
redis
YXXY3135 小时前
网络基础2(三)
网络
m24tyy6 小时前
常见空间测绘搜索引擎介绍和使用以及子域名的收集
网络·测试工具·搜索引擎
数据安全技术观察6 小时前
数据动态脱敏:让脱敏策略跟着数据目录走
大数据·网络·数据库
我爱cope6 小时前
【计算机网络 | 网络层1:网络层的职责:IP 协议究竟解决了什么问题?】
网络·tcp/ip·计算机网络
万里侯6 小时前
GitOps 2026年演进趋势:从配置管理到环境即代码的范式转移及Pull vs Push模型的再思考
微服务·容器·k8s
acd120096 小时前
一次线上OOM排查实录:从jmap到代码重构,我踩过的坑全在这了
容器·重构·kubernetes