前提:已安装docker
步骤:
第一步、Docker使用search命令搜索redis镜像
命令:docker search <镜像名称>
docker search redis
命令执行效果截图:

第二步、Docker使用pull命令拉取镜像
命令::docker pull <镜像名称>:<版本号>
docker pull redis
第三步、宿主机创建redis配置文件
mkdir -p /data/wwwroot/web/work/software/redis/data
cd /data/wwwroot/web/work/software/redis
touch redis.conf
vi redis.conf
复制虚线start和虚线end之间的文本:
--------------------------------------start--------------------------------------
# bind 192.168.56.102
# bind 127.0.0.1 ::1
#bind 127.0.0.1
protected-mode no
port 6379
tcp-backlog 128
requirepass 000415
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
maxmemory 256mb
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
--------------------------------------end--------------------------------------
vi redis.conf后输入i进入插入模式
1、然后将复制的文本粘贴到redis.conf文件中
2、粘贴内容到redis配置文件中后输入esc键盘退出插入模式
3、输入:x并回车后保存文件退出
命令执行效果截图:


第四步、Docker挂载宿主机配置文件
为了数据的持久化需要将要宿主机中redis配置文件挂载到容器目录下,以配置文件方式启动redis 容器。
1、挂载宿主机redis的配置文件:/data/wwwroot/web/work/software/redis/redis.conf
2、挂载宿主机redis的数据文件:/data/wwwroot/web/work/software/redis/data
# 进入redis配置目录
cd /data/wwwroot/web/work/software/redis
# 查看当前目录
pwd
# 查看redis配置文件redis.conf和redis数据data目录
ls
命令执行效果截图:

第五步、Docker使用run命令启动redis 容器
# 执行docker运行容器命令
docker run --name redis-new --privileged=true --restart=always -p 6482:6379 --log-opt max-size=200m --log-opt max-file=3 -v /data/wwwroot/web/work/software/redis/redis.conf:/etc/redis/redis.conf -v /data/wwwroot/web/work/software/redis/data:/data -d redis redis-server /etc/redis/redis.conf --requirepass 123456
# 容器命令参数说明:
docker run 运行容器
--name redis-new 容器名称定义为redis-new
--privileged=true 指定容器为特权容器,特权容器拥有所有的capabilities,使用该参数后container内的root拥有真正的root权限。container内的root只是外部的一个普通用户权限,privileged启动的容器,可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器中启动docker容器
--restart=always 开机自启动
-p 6482:6379 将容器的6379端口映射到宿主机的6482端口,宿主机端口如若冲突请换个端口
--log-opt max-size=200m 指定日志文件大小上限为200M
--log-opt max-file=3 指定日志文件个数做多3个,只保存最新的3个日志文件
-v /data/wwwroot/web/work/software/redis/redis.conf:/etc/redis/redis.conf 宿主机文件/data/wwwroot/web/work/software/redis/redis.conf挂载到容器文件/etc/redis/redis.conf中
-v /data/wwwroot/web/work/software/redis/data:/data 宿主机目录/data/wwwroot/web/work/software/redis/data挂载到容器目录/data中
-d redis 后台运行redis
redis-server /etc/redis/redis.conf 以配置容器中的配置文件启动redis,配置文件最终映射的还是宿主机的配置文件:/data/wwwroot/web/work/software/redis/redis.conf
--requirepass 123456 设置redis连接密码为123456
命令执行效果截图:

第六步、Docker使用ps命令查看最新创建的容器
docker ps -n 1

第七步、Docker使用exec命令进入容器验证登录redis
# docker进入容器并运行redis-cli
docker exec -it redis-new redis-cli
回车执行redis-cli命令后输入 auth 123456敲回车返回ok登录成功,exit退出容器
命令执行效果截图:

第八步、通过echo将批量执行命令写入到string-set.txt文件中
# 重新进入容器
docker exec -it redis-new /bin/bash
# 通过echo批量写入到string-set.txt文件中
echo "set user_status_set:1 1" > string-set.txt
echo "set user_status_set:2 1" >> string-set.txt
echo "set user_status_set:3 1" >> string-set.txt
echo "set user_status_set:4 1" >> string-set.txt
...
# cat 命令查看文件内容
cat string-set.txt
命令执行效果截图:

第九步、批量导入数据到redis
# 通过批量执行命令–-pipe:批量导入string类型数据
cat string-set.txt | redis-cli -h 127.0.0.1 -p 6379 -a 123456 --pipe
# redis-cli登录后通过keys查看导入结果
keys user_status_set*
命令执行效果截图:


本文详细介绍了如何在Docker环境下搜索、拉取Redis镜像,创建并配置宿主机redis文件,挂载配置和数据,启动容器并设置权限,以及验证和导入数据的过程。

2241

被折叠的 条评论
为什么被折叠?



