本地连接服务器上docker中的redis

在上一篇本地连接服务器redis这篇文章中详细介绍了。

这里连接服务器中docker中的redis,同样的操作步骤

1.看一下服务器上redis实例的运行状态:
bash 复制代码
[root@iZuf67k70ucx14s6zcv54dZ var]# 
ps aux | grep redis-server

若显示:

则说明服务器上docker的redis已经启动了,若没有,则请重启一下:

bash 复制代码
[root@iZuf67k70ucx14s6zcv54dZ var]# 
docker restart redis

若显示的不是redis-server *:6379没有带*

则说明并没有允许所有的ip访问该redis。

2.若没有ip的访问权限,则需要更改配置文件(这一步骤应该大部分不会接触)

首先你需要确定你的docker中的redis是不是默认使用命令行的形式启动redis的,因为如果使用命令行,则优先级高于配置文件。

bash 复制代码
docker inspect --format='{{.Config.Cmd}}' redis

这里如果看到:

这种说明确实是通过命令行的方式

版本高的redis也是默认可以通过所有的ip访问的。

比如第一步上的redis运行实例上带着*

若不是通过命令行的形式,则说明需要改配置文件,

你需要先看一下你的配置文件是在哪里:

先进入docker

bash 复制代码
docker exec -it redis bash
注意上面的redis是我的redis在容器中的名称,可以用id或名称

在进入redis:

bash 复制代码
redis-cli

如果有密码则需要:

bash 复制代码
Auth xxxxxx
上面的xxxxxx是你的redis密码

更改配置文件的操作和上一篇本地连接redis服务器文章相同操作,不再赘述。

修改完重启redis:

bash 复制代码
docker restart redis
3.宝塔中确定端口的映射方式

因为本地只能通过服务器的公网ip,先访问到服务器,再通过端口的映射可以访问到docker中的redis

所以查看:

说明后面访问该docker中数据库要通过

host:服务器ip

port:6380

来进行访问。

4.确定服务器6380端口已经有被访问的权限、以及防火墙允许6380端口的通过。
5.通过本地redis连接工具进行远程连接。

文章最后:还是建议就用默认的方式,允许所有ip访问docker中的redis

如果想测试,只允许容器内部访问,

(1)可以新建一个redis容器实例:

bash 复制代码
[root@iZuf67k70ucx14s6zcv54dZ var]# 
docker run -d --name TestRedis -p 6381:6379 redis redis-server --bind 127.0.0.1 --requirepass fastbee --appendonly yes

容器中redis实例的名称为:TestRedis

主机到容器的映射方式是:6381-->6379

允许访问本redis的ip: 127.0.0.1

查看运行的redis服务:

bash 复制代码
[root@iZuf67k70ucx14s6zcv54dZ var]# 
ps aux | grep redis-server

此时,也可以在宝塔的docker面板中查看,确实已经多了一个名称为TestRedis 的实例

(2)防火墙,服务器开放6381端口

(3)本地连接redis

结果肯定是连接不上的。

(4)停止TestRedis服务

bash 复制代码
[root@iZuf67k70ucx14s6zcv54dZ var]# 
docker stop TestRedis

(5)删除TestRedis

bash 复制代码
[root@iZuf67k70ucx14s6zcv54dZ var]# 
docker rm TestRedis

(6)重新新建该服务:

bash 复制代码
[root@iZuf67k70ucx14s6zcv54dZ var]# 
docker run -d --name TestRedis -p 6381:6379 redis redis-server --bind 0.0.0.0 --requirepass 123456 --appendonly yes

(7)本地redis连接工具进行连接

没错!测试连接成功!!

思考:

至于为什么docker中redis是通过命令行的方式控制密码和允许访问ip的,是因为开始在docker创建redis实例的时候,就指定了密码和限定的ip(ip如果不指定,则默认是0.0.0.0,即所有的ip都能访问)

相关推荐
保持学习ing1 小时前
day1--项目搭建and内容管理模块
java·数据库·后端·docker·虚拟机
c30%002 小时前
内网渗透——红日靶场五
运维·服务器
宇钶宇夕2 小时前
EPLAN 电气制图:建立自己的部件库,添加部件-加SQL Server安装教程(三)上
运维·服务器·数据库·程序人生·自动化
susu10830189113 小时前
Debian 11 Bullseye 在线安装docker
运维·docker·debian
傲祥Ax3 小时前
Redis总结
数据库·redis·redis重点总结
love530love3 小时前
Docker 稳定运行与存储优化全攻略(含可视化指南)
运维·人工智能·windows·docker·容器
运维小贺3 小时前
各服务器厂商调整BIOS睿频教程
linux·运维·服务器·性能优化
网硕互联的小客服3 小时前
如何排查服务器中已经存在的后门程序?
运维·服务器·github
人生匆匆3 小时前
docker进入启动失败的容器
运维·docker·容器
NetX行者4 小时前
FastMCP:用于构建MCP服务器的开源Python框架
服务器·python·开源