文章讲了:docker下搭建redis6.0.20遇到一些问题,以及解决后的最佳实践方案
文章实现了:
- docker run搭建redis
- docker compose搭建redis
搭建一个redis'的过程中遇到很多问题,先简单说一下搭建的顺序
- 找一个redis.conf文件(没有配置文件也可以启动,但是任何对配置的修改都是无记录的,再次启动会丢失,文章下方会附带官方配置文件)
- 配置日志输出路径(不配置会输出到/dev/null,还是个二进制文件,日志输出路径可在redis.conf内设置 )
- 我们需要挂载3个重要目录:配置文件&数据文件&日志文件
注意:- 配置文件挂载:应当挂载配置文件redis.conf所属的文件夹,而不能挂载该配置文件(引流错误:CONFIG REWRITE (error) ERR Rewriting config file: Device or resource busy)
- 你应当创建一个redis.conf和redis的log文件用于启动的时候挂载到该容器内部
- 所涉及到的文件和文件所在上层文件夹都给上最高操作权限(命令:chmod 777 /xxx)(引流错误:CONFIG REWRITE (error) Could not create tmp config file (Permission denied))
- docker run命令启动(下方附带)
- docker compose文件启动(下方附带)
redis.conf 官网链接:redis版本conf选择
点进去,全选网页内容,进入我们的目标文件夹,
- 创建我们需要向容器内挂载的文件夹
- 创建redis.conf配置文件
- 创建redis.log日志文件
- 给几个文件夹+文件赋予读写执行的权限(注意:我说的是文件夹和文件)
- 将日志输出路径配置到配置文件内(vi 文件改改)
- docker run启动(注意修改自己的挂载路径)
java
docker run -d --name redis-dev -p 6379:6379 -v /var/lib/dockerInfo/composeInfo/volumes/redisVolume/etc:/etc/redis -v /var/lib/dockerInfo/composeInfo/volumes/redisVolume/data:/data -v /var/lib/dockerInfo/composeInfo/volumes/redisVolume/logs/redis.log:/var/log/redis.log redis:6.0.20 redis-server /etc/redis/redis.conf
- docker-compose文件
yaml
name: redis-start
services:
redis:
restart: always
image: redis:6.0.20
container_name: redis-dev
ports:
- 6379:6379
volumes:
- /var/lib/dockerInfo/composeInfo/volumes/redisVolume/etc:/etc/redis
- /var/lib/dockerInfo/composeInfo/volumes/redisVolume/data:/data
- /var/lib/dockerInfo/composeInfo/volumes/redisVolume/logs/redis.log:/var/log/redis.log
command: redis-server /etc/redis/redis.conf
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 60s
timeout: 10s
retries: 3