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

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

相关推荐
终端行者34 分钟前
k8s之Ingress服务接入控制器
云原生·容器·kubernetes
幻灭行度1 小时前
通过redis_exporter监控redis cluster
数据库·redis·缓存
IT成长日记2 小时前
【自动化运维神器Ansible】Ansible常用模块之File模块详解
运维·自动化·ansible·file·常用模块
獭.獭.2 小时前
Linux -- 文件【上】
linux·运维·服务器·进程·pcb
不会敲代码的XW3 小时前
高可用集群KEEPALIVED的详细部署
运维·云原生
老实巴交的麻匪3 小时前
提问的智慧,用最少的时间获得最有效的帮助
运维·团队管理
nbsaas-boot3 小时前
收银系统优惠功能架构:可扩展设计指南(含可扩展性思路与落地细节)
java·大数据·运维
爱喝酸奶的桃酥4 小时前
解密负载均衡:如何轻松提升业务性能
运维·负载均衡
搬码临时工4 小时前
使用FRP搭建内网穿透工具,自己公网服务器独享内外网端口转发
运维·服务器
longxibo4 小时前
飞牛系统安装DataEase自定义Docker包
运维·docker·容器