使用docker安装redis

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 该文档介绍了如何使用Docker快速搭建Redis数据库,以便于Spring Boot学习。主要内容包括获取Redis镜像、创建容器、配置持久化存储目录和修改默认配置文件,以及检查和访问Redis容器服务。此外,还提到若需外部访问,需开启宿主机防火墙相应端口。注意,本教程不深入讲解Docker,若想深入学习Docker,建议另寻专门课程。

本节的目的不在于去教大家理解docker容器(讲docker就脱离了我们课程的核心,我们的课程是Spring Boot 不是docker),而是希望通过docker的方式快速的为大家搭建一个redis数据库,从而方便大家学习使用,方便学习本章后续的内容。如果你想学好docker,你应该再去学另外的课程。

   如果你觉得docker安装redis对于你来说有困难,可以下载一个windows版本的redis安装,达到可以开始后续章节学习的目的即可。

准备工作

   首先要安装好docker。CentOS7如何安装docker方法在本文档的番外篇里面介绍

下面的安装过程如果看不懂,回头来看这个图理解一下。

一、获取 redis 镜像

如果你不熟悉docker,可以认为docker镜像是安装包。

   docker search redis

   docker pull redis:5.0.5

   docker images

其实更形象点的理解docker镜像和容器之间的关系,更像是Class类与对象之间的关系。一个类可以构造多个对象,一个镜像可以构造多个容器。类和镜像是实实在在存在的字节码文件;对象和容器是在系统内存里面,作为运行时状态存在。

二、创建容器

2.1.创建持久化存储目录

容器可以运行在内存里面,但是容器存储的数据需要进行持久化。所以在宿主机上创建redis 容器的数据和配置文件存储目录。

   # 这里我们在 /home/docker 下创建

   mkdir /home/docker/redis/{conf,data} -p

   cd /home/docker/redis

注意:后面所有的操作命令都要在这个目录/home/docker/redis下进行

2.2.获取 redis 的默认配置文件模版

   # 获取 redis 的默认配置模版

   # 这里主要是想设置下 redis 的 log / password / appendonly

   # redis 的 docker 运行参数提供了 --appendonly yes 但没 password

   wget https://gitee.com/hanxt/boot-launch/raw/master/src/main/resources/otherconfig/redis.conf -O conf/redis.conf

   

   # 直接替换编辑

   sed -i 's/logfile ""/logfile "access.log"/' conf/redis.conf;

   sed -i 's/# requirepass foobared/requirepass 123456/' conf/redis.conf;

   sed -i 's/appendonly no/appendonly yes/' conf/redis.conf;

   sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' conf/redis.conf;

   

   sed -i是linux文件替换命令,替换格式为s/被替换的内容/替换之后的内容/

   替换logfile ""为logfile "access.log",指定日志文件名称为access.log

   替换# requirepass foobared为requirepass 123456,指定访问密码为123456

   替换“appendonly no“为”appendonly yes”,开启appendonly模式

   替换绑定IP“bind 127.0.0.1”为“bind 0.0.0.0”

   protected-mode 是在没有显式定义 bind 地址(即监听全网段),又没有设置密码 requirepass时,protected-mode 只允许本地回环 127.0.0.1 访问。所以改为bind 0.0.0.0

2.3.使用镜像创建一个容器

创建并运行一个名为 myredis 的容器,放到start-redis.sh脚本里面

   # 创建并运行一个名为 myredis 的容器

   docker run \

   -p 6379:6379 \

   -v $PWD/data:/data \

   -v $PWD/conf/redis.conf:/etc/redis/redis.conf \

   --privileged=true \

   --name myredis \

   -d redis:5.0.5 redis-server /etc/redis/redis.conf

   

   # 命令分解

   docker run \

   -p 6379:6379 \ # 端口映射 宿主机:容器

   -v $PWD/data:/data:rw \ # 映射磁盘目录 rw 为读写,宿主机目录:容器目录

   -v $PWD/conf/redis.conf:/etc/redis/redis.conf:ro \ # 挂载配置文件 ro 为readonly

   --privileged=true \ # 给与一些权限

   --name myredis \ # 给容器起个名字

   -d redis redis-server /etc/redis/redis.conf # deamon 运行容器 并使用配置文件启动容器内的 redis-server  

   $PWD是当前目录,也就是/home/docker/redis

2.4.查看活跃的容器

   # 查看活跃的容器

   docker ps

   # 如果没有 myredis 说明启动失败 查看错误日志

   docker logs myredis

   # 查看 myredis 的 ip 挂载 端口映射等信息

   docker inspect myredis

   # 查看 myredis 的端口映射

   docker port myredis

三、访问 redis 容器服务

安装好之后,可以进行访问测试

   docker exec -it myredis bash

   redis-cli

上面的测试是在宿主机内访问docker容器。如果在宿主机上可以访问到redis服务,在宿主机之外的主机无法访问该redis服务的话,可能是因为宿主机的防火墙没有打开。参考下面的做法。

四、开启防火墙端口,提供外部访问

开启docker容器所在的宿主机端口,提供给外部服务进行访问

   firewall-cmd --zone=public --add-port=6379/tcp --permanent

   firewall-cmd --reload

   firewall-cmd --query-port=6379/tcp


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
NoSQL 数据可视化 关系型数据库
安装 Redis
本文主要介绍了Linux系统下Redis的安装步骤,包括卸载旧版本、下载新版本、编译安装以及配置启动等详细操作,并解释了Redis默认端口6379的由来。同时,文章还简要说明了Windows环境下Redis的下载与服务安装方法。最后,推荐了几款Redis可视化管理工具,如RedisView、QuickRedis、AnotherRedisDesktopManager和RedisPlus,提供了它们的功能特点及下载链接,方便用户根据需求选择合适的工具进行数据库管理。
259 1
|
3月前
|
存储 安全 C++
Odoo 安装方式选择:源码安装 vs Docker
Odoo部署常采用源码编译或Docker容器化,但分别面临依赖复杂、版本风险和服务化难题,以及镜像臃肿和扩展受限的问题。Websoft9提出混合方案,融合两者优势:通过智能环境适配、三阶段部署流程(环境预检、混合模式选择、持久化配置)及声明式YAML配置,实现高效、灵活的双模运行时。此方案显著降低依赖冲突解决时间(从83分钟至0),生产环境构建耗时缩短至8分钟,并达100% CVE漏洞修复率,适合ERP定制开发与规模化部署的企业需求。
|
1月前
|
存储 Ubuntu Docker
Ubuntu 安装 docker
本文介绍了在 Ubuntu 系统上安装 Docker 的详细步骤,包括卸载旧版本、设置 Docker 官方存储库、安装 Docker 包以及配置镜像源加速。首先通过移除旧版组件如 `docker.io` 和 `docker-compose` 等进行清理,然后添加官方 GPG 密钥并配置 APT 源,接着安装最新 Docker 组件。此外,还提供了阿里云和 1Panel 的镜像源配置方法以提升下载速度,并通过运行 `hello-world` 镜像测试安装是否成功。
712 3
Ubuntu 安装 docker
|
1月前
|
Linux iOS开发 Docker
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
66 1
|
2月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
633 16
|
2月前
|
JSON NoSQL Redis
在Rocky9系统上安装并使用redis-dump和redis-load命令的指南
以上步骤是在Rocky9上使用redis-dump和redis-load命令顺利出行的秘籍。如果在实行的过程中,发现了新的冒险和挑战,那么就像一个勇敢的航海家,本着探索未知的决心,解决问题并前进。
67 14
|
2月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
195 5
|
2月前
|
存储 弹性计算 Linux
安装Docker
常见操作系统安装docker步骤
169 15
|
2月前
|
Docker 容器
在openEuler 22.03 LTS上安装Docker CE和Docker Compose
以上就是在openEuler 22.03 LTS上安装Docker CE和Docker Compose的过程。希望这个指南能帮助你顺利完成安装。
414 12
|
3月前
|
Linux 虚拟化 Docker
win11怎么安装docker的必要设置自学软硬件工程师778天
win11怎么安装docker的必要设置自学软硬件工程师778天
win11怎么安装docker的必要设置自学软硬件工程师778天