docker安装Redis:docker离线安装Redis、docker在线安装Redis、Redis镜像下载、Redis配置、Redis命令

一、镜像下载

1、在线下载

在一台能连外网的linux上执行docker镜像拉取命令

bash 复制代码
docker pull redis:7.4.0

2、离线包下载

两种方式:

方式一:

-)在一台能连外网的linux上安装docker执行第一步的命令下载镜像

-)导出

bash 复制代码
# 导出镜像到本地当前目录
docker save -o redis-7.4.0.tar redis:7.4.0

方式二:

-)Window桌面程序:Docker Desktop

-)下载镜像

-)安装镜像导出插件(说明过程就复用了之前mysql的图)

-)将镜像文件保存到window本地(图略)

3、Community Edition | Docs

Install Redis on Linux | Docs

官方的下载地址,k8s环境用不上,因为官方没有发布镜像(自行打镜像的除外)

二、安装

1、在线安装

见离线安装(只比离线安装少一步导入动作)

2、离线安装

-)导入镜像

bash 复制代码
docker load -i redis-7.4.0.tar

-)查看镜像

bash 复制代码
[docker@GZ***-PM153160 ~]$ docker images
REPOSITORY                                 TAG       IMAGE ID       CREATED        SIZE
harbor.ta.com:30089/library/redis          7.4.0     dae83f665c92   6 months ago   117MB

-)创建映射目录

创建redis配置文件目录、数据文件目录,并修改目录权限

bash 复制代码
sudo mkdir -p /opt/redis/docker-redis/conf
sudo mkdir -p /data1/redis/docker-redis/data
sudo mkdir -p /data1/redis/docker-redis/log
sudo chown -R docker.docker /opt/redis
# 作者data1目录下全是docker用户程序数据,所以没有指定子目录
sudo chown -R docker.docker /data1
# sudo chown -R docker.docker /data1/redis

-)启动容器

bash 复制代码
docker run \
 --name smet-redis \
 --privileged=true \
 -p 6380:6379 \
 -v /etc/redis/redis.conf:/etc/redis/redis.conf \
 -v /app/data/redis_data:/data \
 -d harbor.ta.com:30089/library/redis:7.4.0 redis-server /etc/redis/redis.conf \
 --requirepass MFxsHusd******

这个命令做了以下几件事:

  • --name smet-redis:给容器命名为smet-redis

  • -d:让容器在后台运行。

  • -p 6380:6379:将容器的6379端口映射到宿主机的6380端口,这是Redis的服务端口。

  • -v 映射数据文件目录和日志文件目录,左边的是外部目录,右边的是容器目录

  • --privileged=true 开启鉴权

  • --requirepass MFxsHusd****** 指定密码

-)查看容器

bash 复制代码
[docker@GZ***-PM153160 ~]$ docker ps 
CONTAINER ID   IMAGE                                     COMMAND                  CREATED             STATUS             PORTS                                                                                                                                             NAMES
db867a1bae9a   harbor.ta.com:30089/library/redis:7.4.0   "docker-entrypoint.s..."   20 minutes ago      Up 20 minutes      0.0.0.0:6380->6379/tcp, [::]:6380->6379/tcp                                                                                                       smet-redis

-)从容器内部拷贝配置文件

bash 复制代码
[docker@GZ***-PM153160 ~]$ docker cp db867a1bae9a:/etc/redis/redis.conf /opt/redis/docker-redis/conf/redis.conf 
Successfully copied 1.54kB to /opt/redis/docker-redis/conf/redis.conf
[docker@GZ***-PM153160 ~]$ 

-)调整其他配置(可选)

vi /opt/redis/docker-redis/conf/redis.conf

按需修改后,删除原容器,添加配置文件映射参数后重新创建容器

bash 复制代码
docker run \
 --name smet-redis \
 --privileged=true \
 -p 6380:6379 \
 -v /app/data/redis_data:/data \
 -d harbor.ta.com:30089/library/redis:7.4.0 redis-server \
 --requirepass MFxsHusdxwFv6cqQ

-)重启容器

bash 复制代码
[docker@GZ***-PM153160 ~]$ docker restart db867a1bae9a
db867a1bae9a

三、使用/基本操作

‌**Redis的基本命令包括操作数据库、键操作、字符串操作等,这些命令在Redis的使用中非常基础且重要。**

-)进入容器

bash 复制代码
[docker@GZ***-PM153160 ~]$ docker exec -it db867a1bae9a /bin/bash
root@db867a1bae9a:/data# 

-)操作数据库相关命令

  • 登录Redis客户端 ‌:使用redis-cli命令连接到Redis服务器。
  • 校验密码 ‌:如果Redis配置了密码,需要使用auth命令进行验证。
  • 选择数据库 ‌:Redis默认有16个数据库,可以使用select命令切换数据库。
  • 清空数据库 ‌:使用flushall命令可以清空所有数据库的键值信息。

-)键相关操作命令‌

  • 查看所有键 ‌:使用keys *命令可以查看所有键,但不建议在生产环境中使用,因为会对性能产生影响。
  • 删除键 ‌:使用del命令删除一个或多个键。
  • 判断键是否存在 ‌:使用exists命令检查键是否存在。
  • 判断键值类型 ‌:使用type命令查看键值的类型。
  • 设置键的过期时间 ‌:使用expire命令为键设置过期时间。
  • 重命名键 ‌:使用rename命令重命名键,如果新名称已存在,则会覆盖。
  • 仅在重命名键不存在时成功 ‌:使用renamenx命令仅在目标键不存在时重命名成功

-)字符串操作命令

  • 添加键值对 ‌:使用set命令添加键值对,value可以是字符串或数字。
  • 获取指定键的值 ‌:使用get命令获取键的值。
  • 获取值长度 ‌:使用strlen命令获取字符串的长度。
  • 在字符串结尾追加内容 ‌:使用append命令在字符串结尾追加内容。
  • 自增和自减操作 ‌:使用incrdecrincrbydecrbyincrbyfloat命令对整数或浮点数进行增减操作。

-)其他常用命令

  • 查看符合模板的所有键 ‌:使用keys命令,但需要注意其对性能的影响。
  • 判断键是否存在 ‌:使用exists命令。
  • 为键设置过期时间 ‌:使用expire命令。
  • 查看键的剩余过期时间 ‌:使用ttl命令。
  • 返回键所存储的值的类型 ‌:使用type命令。

这些基本命令涵盖了Redis的主要功能,帮助用户高效地管理和操作数据。

遇到的问题总结

1、将镜像推到内网镜像仓库时报错

bash 复制代码
[zhao****@GZ***-PM153160 ~]$ docker push 10.130.***.106:30089/library/zookeeper:3.9.3
The push refers to repository [10.130.153.***:30089/library/zookeeper]
Get "https://10.130.153.***:30089/v2/": x509: cannot validate certificate for 10.130.153.*** because it doesn't contain any IP SANs

解决:换成域名

bash 复制代码
[zhao***@GZ***-PM153160 ~]$ docker login harbor.***.com:30089
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /home/zhaozheng/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-stores

Login Succeeded

可能会用到的其他命令

-)创建卷

bash 复制代码
docker volume create redis_data

-)验证卷

bash 复制代码
docker volume ls

**-)**使用卷

bash 复制代码
docker run --name some-redis -v redis_data:/data -d redis:tag

这种docker卷作者没有用过(实际数据存储位置是docker默认数据目录,默认数据目录可以在docker配置文件中配置修改),有兴趣的可自行尝试~

如果喜欢我的文章,请帮我点赞,谢谢~

相关推荐
阿杆31 分钟前
零成本 Redis 实战:用Amazon免费套餐练手 + 缓存优化
redis·后端
YANGZHAO3 小时前
Docker零基础入门:一文搞定容器化核心技能
后端·docker
你的电影很有趣3 小时前
lesson44:Redis 数据库全解析:从数据类型到高级应用
数据库·redis·缓存
helloyaren5 小时前
Docker Desktop里搭建Redis 8.2.1集群的保姆级教程
redis·学习·集群·cluster
m0_5951998515 小时前
Redis(以Django为例,含具体操作步骤)
数据库·redis·缓存
秃了也弱了。15 小时前
Redisson3.14.1及之后连接阿里云redis代理模式,使用分布式锁:ERR unknown command ‘WAIT‘
redis·阿里云·代理模式
染翰16 小时前
lua入门以及在Redis中的应用
开发语言·redis·lua
城管不管19 小时前
Docker核心---数据卷(堵门秘籍)
运维·docker·容器
BestAns20 小时前
Docker+Jenkins 自定义镜像指南
docker
A尘埃20 小时前
Redis在地理空间数据+实时数据分析中的具体应用场景
java·redis