一、镜像下载
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 /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 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
命令在字符串结尾追加内容。 - 自增和自减操作:使用
incr
、decr
、incrby
、decrby
、incrbyfloat
命令对整数或浮点数进行增减操作。
-)其他常用命令
- 查看符合模板的所有键:使用
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-storesLogin Succeeded
可能会用到的其他命令
-)创建卷
docker volume create redis_data
-)验证卷
docker volume ls
-)使用卷
docker run --name some-redis -v redis_data:/data -d redis:tag
这种docker卷作者没有用过,有兴趣的可自行尝试~
如果喜欢我的文章,请帮我点赞,谢谢~