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

Docker 中安装 Redis 并开启远程访问

在 Docker 中安装 Redis 并开启远程访问,以便本机可以连接的详细步骤:

一、拉取 Redis 镜像

首先,你需要从 Docker Hub 拉取 Redis 的镜像。使用以下命令:
bash

docker pull redis:latest

这将拉取最新版本的 Redis 镜像。如果你想使用特定版本的 Redis,可以将 latest 替换为具体的版本号,例如 redis:6.2.6。

二、运行 Redis 容器

运行 Redis 容器并进行必要的配置,以允许远程访问。使用以下命令:
bash

docker run -d --name redis-container -p 6379:6379 redis:latest redis-server --requirepass your_password --protected-mode no

解释:
docker run -d:以守护进程模式运行容器。
–name redis-container:为容器命名为 redis-container,你可以根据自己的喜好更改名称。
-p 6379:6379:将容器内的 6379 端口(Redis 默认端口)映射到主机的 6379 端口,以便通过主机的 6379 端口访问容器内的 Redis 服务。
redis-server --requirepass your_password --protected-mode no:
redis-server:启动 Redis 服务器。
–requirepass your_password:设置 Redis 的访问密码,将 your_password 替换为你想要设置的密码,这是出于安全考虑,防止未经授权的访问。
–protected-mode no:关闭保护模式,这是为了允许远程访问。但需要注意,关闭保护模式会带来一定的安全风险,建议仅在受信任的网络环境中进行。

三、测试远程连接

在本机上,你可以使用 Redis 客户端工具进行连接测试:

  1. 使用命令行工具 redis-cli
    你可以使用 redis-cli 命令行工具进行连接测试。首先,确保你已经安装了 redis-cli,如果没有安装,可以通过包管理器进行安装(例如,在 Ubuntu 上使用 sudo apt-get install redis-tools)。
    然后,使用以下命令连接到 Redis 服务:
    bash
redis-cli -h localhost -p 6379 -a your_password

-h localhost:指定主机地址为 localhost(因为是在本机测试)。
-p 6379:指定端口为 6379。
-a your_password:使用之前设置的密码进行连接。


四、安全考虑
开启远程访问(关闭 protected-mode)会带来一定的安全风险,确保你的网络环境是受信任的,或者采取其他安全措施,例如使用 Docker 的网络隔离功能,将 Redis 容器放在一个自定义的网络中,只允许特定的主机或服务访问。
尽量避免在生产环境中使用 --protected-mode no,如果确实需要远程访问,建议使用 Docker 的网络安全功能,如创建用户自定义网络并设置网络访问策略。
五、使用 Docker 网络进行安全隔离(可选)
你可以创建一个 Docker 网络,将 Redis 容器放入该网络,并仅允许特定的容器或主机访问。以下是一个示例:

  1. 创建网络
    bash
docker network create redis-network
  1. 运行 Redis 容器在新创建的网络中
    bash
docker run -d --name redis-container --net redis-network -p 6379:6379 redis:latest redis-server --requirepass your_password
  1. 运行其他容器(如果需要)并加入该网络
    bash
docker run -d --name app-container --net redis-network your_app_image

这样,redis-container 和 app-container 就在同一个网络中,可以相互访问,而外部网络(除了映射的 6379 端口)无法直接访问 Redis 容器,提供了一定的安全隔离。
通过上述步骤,你可以在 Docker 中安装 Redis 并开启远程访问,同时可以根据需要进行安全方面的考虑和配置,确保你的 Redis 服务既可以正常使用,又能保证一定的安全性。请根据你的实际情况进行调整,特别是在安全方面要格外注意,避免因为开放远程访问而导致安全问题。


http://www.kler.cn/a/509625.html

相关文章:

  • Go语言之路————条件控制:if、for、switch
  • UI自动化测试:异常截图和page_source
  • Java并发编程:线程安全的策略与实践
  • 【Azure 架构师学习笔记】- Azure Function (2) --实操1
  • 递归40题!再见递归
  • 算法与数据结构——复杂度
  • 面向法律场景的大模型RAG检索增强解决方案
  • FPGA 全局时钟缓存连接和布局跟踪
  • python-leetcode-快乐数
  • 如何运行第一个Tomcat HttpServlet 程序
  • Mysql--实战篇--连接泄漏问题(什么是连接泄漏,未关闭SqlSession,长事务处理,连接池管理等)
  • JAVA-Exploit编写(7)--http-request库文件上传使用续篇
  • MySQL课堂练习(多表查询练习)
  • Mysql 设置 慢SQL时间并触发邮件
  • HTTP / 2
  • 用户中心项目教程(四)---Vue脚手架完成前端初始化
  • Python基于Django的图像去雾算法研究和系统实现(附源码,文档说明)
  • 脚本工具:PYTHON
  • 人工智能之数学基础:线性表达和线性组合
  • 【大数据2025】MapReduce
  • 解决conda create速度过慢的问题
  • DETRs with Collaborative Hybrid Assignments Training论文阅读与代码
  • 【LeetCode: 226. 翻转二叉树 + 二叉树】
  • 若依入门使用
  • WEB攻防-通用漏洞_XSS跨站_绕过修复_http_only_CSP_标签符号
  • Redis的线程模型是什么