Docker部署Redis

1. 拉取Redis镜像

从docker hub上(阿里云加速器)拉取redis镜像

复制代码
[root@bogon /]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
a480a496ba95: Pull complete 
89511e3ccef2: Pull complete 
4ca428e0bb5e: Pull complete 
41cc262fb5bb: Pull complete 
228fc9e0b0ff: Pull complete 
23d1d45ab415: Pull complete 
4f4fb700ef54: Pull complete 
6adf9ee29d6f: Pull complete 
Digest: sha256:a06cea905344470eb49c972f3d030e22f28f632c1b4f43bbe4a26a4329dd6be5
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest

查看镜像是否已经下载

复制代码
docker images

2. 创建Redis配置和数据目录

在宿主机创建两个文件夹,一个是存放配置文件,一个是保存redis数据,实现数据持久化

复制代码
# 配置文件
mkdir -p /myredis/redis/conf

# 数据目录
mkdir -p /myredis/data

[root@bogon /]# cd /myredis
[root@bogon myredis]# ls
data  redis

创建配置文件redis.conf

复制代码
vi /myredis/redis/conf/redis.conf

配置文件

复制代码
# 开启密码验证(可选)
# requirepass xxx

# 允许redis外地连接,需要注释掉绑定的IP
# bind 127.0.0.1

# 关闭保护模式(可选)
protected-mode no

# 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败
daemonize no

# 开启redis数据持久化, (可选)
appendonly yes

3. 启动Redis容器

使用以下命令启动Redis容器,并将配置文件和数据目录挂载到容器中

复制代码
docker run --name myredis --privileged=true \
-p 6379:6379 \
-v /myredis/data:/data \
-v /myredis/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

参数说明:

复制代码
--name:设置容器名为redis。
-p 6379:6379:将容器的6379端口映射到宿主机的6379端口。
-v /myredis/data:/data:将宿主机的data目录挂载到容器的/data目录,用于数据持久化。
-v /myredis/redis/conf/redis.conf:/etc/redis/redis.conf:将宿主机的redis.conf配置文件挂载到容器的/etc/redis/redis.conf,使用自定义的配置文件启动Redis。
-d:以守护进程模式运行容器。
redis redis-server /etc/redis/redis.conf:指定容器启动后执行的命令,即用redis-server启动Redis服务,并使用/etc/redis/redis.conf配置文件。

privileged=true:

Docker挂载主机目录,访问如果出现报错:cannot open directory .: Permission denied,在挂载目录加一个 --privileged=true 参数即可解决

创建容器测试:

复制代码
[root@bogon /]# docker run --name myredis --privileged=true \
> -p 6379:6379 \
> -v /myredis/data:/data \
> -v /myredis/redis/conf/redis.conf:/etc/redis/redis.conf \
> -d redis redis-server /etc/redis/redis.conf
f6b139b48bc5d1f6233ef0fd27f4daa0094849c53a7636aea3ca5aeeabe02403
[root@bogon /]# docker ps
CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS         PORTS                                       NAMES
f6b139b48bc5   redis     "docker-entrypoint.s..."   5 seconds ago   Up 3 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   myredis
[root@bogon /]#

进行入容器,查看数据卷是否映射正确

宿主机配置文件内容:

容器内部配置文件内容

复制代码
docker exec -it 运行着Rediis服务的容器ID /bin/bash

4. 测试Redis

进入容器,然后登陆客户端

复制代码
docker exec -it 运行着Rediis服务的容器ID /bin/bash

登陆客服端,进行数据的设置与获取测试

复制代码
root@f6b139b48bc5:/# redis-cli
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set a name
OK
127.0.0.1:6379> get a
"name"
127.0.0.1:6379> 

进入容器,并进入redis的客户端

复制代码
docker exec -it 运行着Rediis服务的容器ID redis-cli

[root@bogon /]# docker exec -it f6b139b48bc5 redis-cli
127.0.0.1:6379> get a
"name"
127.0.0.1:6379> 

5. 往期Docker链接

Docker基本操作命令-CSDN博客

Docker镜像命令汇总笔记-CSDN博客

Docker容器操作命令汇总笔记_容器里面能够运行哪些命令-CSDN博客

Docker本地镜像发布到阿里云镜像服务的简易指南_阿里云容器镜像服务-CSDN博客

Docker本地镜像发布到Docker Registry私有仓库_怎样将镜像推送到registry-CSDN博客

Docker容器数据卷_docker 容器数据卷-CSDN博客

Docker安装Mysql数据库_使用docker安装mysql-CSDN博客

Docker部署MySQL主从复制_docker mysql 主从复制-CSDN博客

Docker部署MySQL双主双从,主主互备-CSDN博客

6. 最后

感谢大家,请大家多多支持

相关推荐
专注代码七年1 小时前
在Windows 境下,将Redis和Nginx注册为服务。
windows·redis·nginx
智_永无止境1 小时前
Redis 8.0携新功能,重新开源
数据库·redis·开源
fengchengwu20121 小时前
langchain4j集成QWen、Redis聊天记忆持久化
redis·langchain·qwen·聊天记忆持久化
UpUpUp……2 小时前
Linux--JsonCpp
linux·运维·服务器·c++·笔记·json
Clockwiseee3 小时前
文件上传总结
运维·服务器·学习·文件上传
liyi_hz20083 小时前
O2OA(翱途)开发平台系统安全-用户登录IP限制
运维·服务器·网络·o2oa开发
hi,编程哥3 小时前
Docker、ECS 与 K8s 网段冲突:解决跨服务通信中的路由问题
docker·容器·kubernetes
武汉格发Gofartlic4 小时前
FEKO许可证的安全与合规性
大数据·运维·安全
How_doyou_do4 小时前
项目全栈实战-基于智能体、工作流、API模块化Docker集成的创业分析平台
运维·docker·容器
杨不易呀5 小时前
Java面试高阶篇:Spring Boot+Quarkus+Redis高并发架构设计与性能优化实战
spring boot·redis·高并发·分布式锁·java面试·quarkus