参考 https://www.w3cschool.cn/docker/docker-install-redis.html
访问 REDIS 镜像库地址:https://hub.docker.com/_/redis?tab=tags 。
docker pull redis:3.2
docker images
docker inspect redis:3.2
版本为 redis-3.2.12
redis镜像中的默认配置
日志位置:
配置文件:没有
数据位置:/data
本机创建目录
日志位置:/data/dockers/redis/logs/
配置文件:/data/dockers/redis/conf/redis.conf
数据位置:/data/dockers/redis/data/
redis镜像中没有默认配置文件,需要自己下载对应版本的配置文件并挂载进去,去github找对应的redis-3.2.13,下载
下来,找到里面的配置文件。
https://github.com/antirez/redis/releases
并保存在本机 /data/dockers/redis/conf/redis.conf
生成随机密码 openssl rand -base64 10|tr A-Z a-z
搜索 requirepass ,设置密码 hwlasqodbgrolq==
设置外网访问 bind 0.0.0.0
不要设置 daemonize
注意,如果下载的配置文件与镜像版本不匹配很有可能启动失败,查看错误日志,例如:
docker logs redis
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 264
>>> 'always-show-logo yes'
Bad directive or wrong number of arguments
redis-server 启动的时候可以指定配置文件,所以镜像中配置文件的位置可以自己定。
(推荐)使用host网络启动
docker run --name redis --network host -v /data/dockers/redis/data:/data -v /data/dockers/redis/conf/redis.conf:/etc/redis/redis.conf --privileged=true -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes
使用bridge网络启动
docker run --name redis -p 6379:6379 -v /data/dockers/redis/data:/data -v /data/dockers/redis/conf/redis.conf:/etc/redis/redis.conf --privileged=true -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes
说明:
redis-server /etc/redis/redis.conf 指定配置文件启动
--appendonly yes 在容器执行redis-server启动命令,并打开redis持久化配置
--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
docker ps
进入容器
docker exec -it redis bash
redis-cli -a hwlasqodbgrolq==
set
get