当前位置: 首页 > news >正文

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

在上一篇本地连接服务器redis这篇文章中详细介绍了。
这里连接服务器中docker中的redis,同样的操作步骤

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

若显示:
在这里插入图片描述
则说明服务器上docker的redis已经启动了,若没有,则请重启一下:

[root@iZuf67k70ucx14s6zcv54dZ var]# 
docker restart redis

若显示的不是redis-server *:6379没有带*
则说明并没有允许所有的ip访问该redis。


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

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

docker inspect --format='{{.Config.Cmd}}' redis

这里如果看到:
在这里插入图片描述
这种说明确实是通过命令行的方式
版本高的redis也是默认可以通过所有的ip访问的。
比如第一步上的redis运行实例上带着*


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

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

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

在进入redis:

redis-cli

如果有密码则需要:

Auth xxxxxx
上面的xxxxxx是你的redis密码

在这里插入图片描述
更改配置文件的操作和上一篇本地连接redis服务器文章相同操作,不再赘述。
修改完重启redis:

docker restart redis
3.宝塔中确定端口的映射方式

因为本地只能通过服务器的公网ip,先访问到服务器,再通过端口的映射可以访问到docker中的redis
所以查看:
在这里插入图片描述
说明后面访问该docker中数据库要通过
host:服务器ip
port:6380
来进行访问。

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

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

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

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

[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服务:

[root@iZuf67k70ucx14s6zcv54dZ var]# 
ps aux | grep redis-server

在这里插入图片描述
此时,也可以在宝塔的docker面板中查看,确实已经多了一个名称为TestRedis 的实例

(2)防火墙,服务器开放6381端口
(3)本地连接redis
结果肯定是连接不上的。

(4)停止TestRedis服务

[root@iZuf67k70ucx14s6zcv54dZ var]# 
docker stop TestRedis

(5)删除TestRedis

[root@iZuf67k70ucx14s6zcv54dZ var]# 
docker rm TestRedis

(6)重新新建该服务:

[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都能访问)


http://www.mrgr.cn/news/367.html

相关文章:

  • KV存储之ETCD
  • Linux网络设置
  • 基于Hadoop的汽车大数据分析系统设计与实现【爬虫、数据预处理、MapReduce、echarts、Flask】
  • 基于spring boot的疫情信息管理系统
  • AWS域名注册服务:为您的在线业务打下坚实基础
  • 快讯 | OpenAI 找回场子:chatgpt-4o-latest 刷新多项AI跑分纪录
  • React 学习——useMemo
  • iOS的App启动详细过程(底层知识)
  • 【STM32嵌入式系统设计与开发拓展】——16_FreeRTOS操作系统
  • 11 IIC通讯协议
  • LLama 3 跨各种 GPU 类型的基准测试
  • 键盘一线品牌有哪些
  • 通过Fiddler肆意修改接口返回数据进行测试
  • Java多线程技术知识点
  • 【Python数据结构与算法】栈----四则运算表达式求值
  • 掌握3个Mock工具,轻松玩转单元测试
  • Hackademic.RTB1靶场实战【超详细】
  • 迭代器模式(IteratorPattern)
  • 算法练习4:并查集/连通图 1:知识点梳理
  • 引领未来视界:OLED柔性屏在公司展厅公共显示栏的创新应用