使用docker怎么制作鉴权和持久化的redis镜像
redis的镜像默认是没有鉴权的,需要鉴权则需要设置配置文件
- 下载最新redis镜像
# docker pull redis:7.2.4
- 设置配置文件和Dockerfile
redis配置文件
# cat redis.conf
bind 0.0.0.0
port 6379
timeout 0
tcp-keepalive 300
daemonize no
databases 16
save 900 1
save 300 10
save 60 10000
# 是否压缩
rdbcompression yes
# 导入时是否检查
rdbchecksum yes
dir /data
dbfilename dump.rdb
# 设置鉴权密码
requirepass password
Dockerfile配置文件
# cat Dockerfile
FROM redis:7.2.4
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
添加配置文件后生成新的镜像
# docker build -t redis:test .
- 使用生成的镜像启动redis
# docker run --name redis -d -p 6379:6379 -v /tmp/:/data redis:test
登录镜像
# docker exec -it redis bash
使用redis-cli登录,需要输入鉴权密码pasword
# redis-cli -p 46379 -h 172.16.5.103 -a 'password'
解释
# -p 端口号
# -h 主机名
# -a 鉴权 如果有特殊字符加单引号shell不能使用双引号
设置并保存数据
> set a 1
> save
退出关闭容器数据文件还在/tmp/dump.rdb