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配置文件中配置修改),有兴趣的可自行尝试~

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

相关推荐
IT成长日记5 分钟前
【Docker基础】Dockerfile多阶段构建:Multi-stage Builds详解
运维·docker·容器·multi-stage·builds
sevevty-seven5 小时前
Redis中的红锁
数据库·redis·php
BUTCHER56 小时前
Docker镜像使用
java·docker·容器
小趴菜吖6 小时前
使用macvlan实现容器的跨主机通信
docker
无敌糖果6 小时前
K8S的Helm包管理器
docker·容器·kubernetes·helm·helm安装包
筱小虾米7 小时前
Docker配置国内镜像源
运维·docker·容器
没有口袋啦7 小时前
《Reids》配置文件
数据库·redis
野蛮人6号8 小时前
黑马点评系列问题之p63unlock.lua不知道怎么整
java·redis·黑马点评
phantomsee9 小时前
Redis学习系列之——高并发应用的缓存问题(二)
redis·redisson
程序员JerrySUN9 小时前
Linux 文件系统实现层详解:原理、结构与驱动衔接
android·linux·运维·数据库·redis·嵌入式硬件