找回密码
 立即注册
快捷导航

[辅助工具] Docker安装Redis

[复制链接]
西梦花客 2023-7-13 16:46:00 | 显示全部楼层
本帖最后由 西梦花客 于 2023-7-13 16:51 编辑

mkdir -p /redis/data
cd /redis/
touch myredis.conf

myredis.conf 的内容看2楼

联网查看redis信息:docker search redis

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /redis/myredis.conf:/etc/redis/redis.conf -v /redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456

--restart=always 总是开机启动
--log 是日志方面的
-p 6379:6379 将6379端口挂载出去
--name 给这个容器取一个名字
-v 数据卷挂载
- /redis/myredis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的myredis.conf 和redis下的redis.conf 挂载在一起。
- /redis/data:/data 这个同上
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是宿主机下的/redis/myredis.conf
–appendonly yes 开启redis 持久化
–requirepass 123456 设置密码 (如果你是通过docker 容器内部连接的话,就随意,可设可不设。但是如果想向外开放的话,一定要设置,我被搞过,可以看这篇文章“阿里云服务器中毒‘Kirito666’经历”)https://editor.csdn.net/md/?articleId=118061056

将redis 的配置文件进行挂载,以配置文件方式启动redis 容器。
挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件

测试:查看启动状态
docker ps -a |grep myredis # 通过docker ps指令查看启动状态,是否成功.

查看容器运行日志
docker logs --since 30m <容器名>
--since 30m 是查看此容器30分钟之内的日志情况。

进入容器内
docker exec -it <容器名> /bin/bash
docker exec -it myredis bash
官方推荐,直接进入redis内部:docker exec -it myredis redis-cli

进入容器内后,密码登录:
auth 123456

查看当前redis有没有设置密码(需要登录才能查看):
config get requirepass


删除redis
停止容器:docker stop myredis # myredis 是我启动redis 命名的别
删除容器:docker rm myredis
停止并删除容器:docker stop myredis -f
删除镜像:docker rmi 739b59b96069 # 这是我镜像redis id

https://blog.csdn.net/weixin_45821811/article/details/116211724
回复

使用道具 举报

主题

0

回帖

570

积分

已臻大成

 楼主| 西梦花客 2023-7-13 16:46:34 | 显示全部楼层
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#bind 127.0.0.1

protected-mode no
port 6379
tcp-backlog 511
requirepass 000415
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
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
appendfilename "appendonly.aof"
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
   
回复

使用道具 举报

主题

0

回帖

570

积分

已臻大成

 楼主| 西梦花客 2023-7-13 16:50:20 | 显示全部楼层
关于是否需要添加 --privileged=true 问题
关于评论区的网友们说要添加:添加--privileged=true参数的问题,这点其实是相对的,如果你报这个权限不足的问题,那就加上就好啦。但如果没有,我不建议你加,这个参数是开启docker启动容器的特权模式,对于宿主机是不安全的。

关于docker中 -v 是否只可以挂载文件夹
这是错误的,它是可以挂载目录和挂载具体文件的。
在之前的文章中就可以看出来,我挂载配置文件是挂载的具体的文件内容,但是挂载持久化数据时,又是挂载的文件夹。
并且你如果是挂载文件夹的话,你本机和容器内都没有的话,在执行启动命令的时候,也会自动创建出来。

设置 max-file 问题
Docker安装Redis9098 作者:西梦花客 帖子ID:486
这个问题我没有遇上,我解释一下参数的作用吧。
限制生成的json.log单个文件大小和保留文件个数:--log-opt max-size=100m --log-opt max-file=3
词语解释:
  • max-size 指定日志文件大小上限
  • max-file 指定日志文件个数
最终的效果就是,日志会持续生成 3 文件,并一直保留最新的 3 个日志文件。
具体生产环境需要根据实际情况设置,切勿随意设置
你不设置的时候,log文件是一直在写入的,数据量将无法控制。

第三方工具如RESP连接不上Redis
如果是本地自己起虚拟机在玩,需要检查ip、防火墙、以及端口映射问题。
如果是在云服务器上玩,则需要检查安全组是否打开,端口映射是否正确。
是否允许远程连接,配置文件中的 bind 项是否做了修改等等。   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼
温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-23 01:10

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表