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. 最后

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

相关推荐
Juicedata28 分钟前
JuiceFS v1.3-Beta2:集成 Apache Ranger,实现更精细化的权限控制
运维·人工智能·ai
❀͜͡傀儡师32 分钟前
如何使用k8s安装redis呢
redis·容器·kubernetes
IT成长日记37 分钟前
05【Linux经典命令】Linux 用户管理全面指南:从基础到高级操作
linux·运维·服务器·用户管理·命令
资讯第一线5 小时前
Windows系统工具:WinToolsPlus 之 SQL Server Suspect/质疑/置疑/可疑/单用户等 修复
运维
惊起白鸽4505 小时前
LVS负载均衡
运维·负载均衡·lvs
潘yi.6 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
伤不起bb7 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
广东数字化转型7 小时前
nginx怎么使用nginx-rtmp-module模块实现直播间功能
linux·运维·nginx
love530love7 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust
啵啵学习7 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式