Bootstrap

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

一、镜像下载

1、在线下载

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

docker pull redis:7.4.0

2、离线包下载

两种方式:

方式一:

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

-)导出

# 导出镜像到本地当前目录
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、离线安装

-)导入镜像

docker load -i redis-7.4.0.tar

-)查看镜像

[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

-)创建映射目录

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

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

-)启动容器

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******   指定密码

-)查看容器

[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

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

[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

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

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

-)重启容器

[docker@GZ***-PM153160 ~]$ docker restart db867a1bae9a
db867a1bae9a

三、使用/基本操作

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

-)进入容器

[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、将镜像推到内网镜像仓库时报错

[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

 解决:换成域名

[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

可能会用到的其他命令

-)创建卷

docker volume create redis_data

-)验证卷

docker volume ls

-)使用卷

docker run --name some-redis -v redis_data:/data -d redis:tag

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

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

;