1. 拉取指定版本镜像
docker pull redis:4.0.0
2. 新建挂载 redis 数据和配置的目录
## 1.redis数据
mkdir -p /data/redis/data
## 2.redis配置文件
mkdir -p /data/redis/conf
3. 添加并修改redis配置文件
- #bind 127.0.0.1 # 注释掉这部分,这是限制redis只能本地访问
- protected-mode no # 默认是yes,yes开启保护模式,限制为本地访问
- daemonize no # 默认是no,yes意为以守护进程方式启动,可后台运行,除非kill进程,yes会使配置文件方式启动redis失败
- requirepass xxxxxxx # redis设置密码
- appendonly yes#redis # 默认是no 持久化
4. 运行 redis 容器
docker run -d --name redis:4.0.0 \
-p 6379:6379 \
--restart always \
--privileged=true \
-v /data/redis/data:/data \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
redis redis-server /etc/redis/redis.conf \
--appendonly yes
- -p 指定启动和宿主机端口号
- -v 挂载目录
- --restart always:自启,
- --privileged=true: 容器内的root拥有真正的root权限
- redis-server /etc/redis/redis.conf:redis容器默认无配置文件,此配置是让redis按照配置文件启动
- –appendonly yes:redis启动后数据持久化
5. 验证
进入容器:
docker exec -it redis(容器名称或id) /bin/bash
修改配置后如何生效:
docker restart redis(容器名称或id)
6.衍生问题
如果是阿里云等一些云服务器在开启端口的同时,别忘记在控制台的安全组中添加端口开放,否则无法访问。
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
本地访问rdedis方式
docker exec -ti redis(容器名称或id) redis-cli # d0b86 容器ID 配置成自己的就可以
docker exec -ti redis(容器名称或id) redis-cli -h localhost -p 6379
docker exec -ti redis(容器名称或id) redis-cli -h 127.0.0.1 -p 6379
docker exec -ti redis(容器名称或id) redis-cli -h 172.17.0.3 -p 6379
// 注意,这个是容器运行的ip,可通过 docker inspect redis_s | grep IPAddress 查看
远程访问redis方式
docker exec -it redis(容器名称或id) redis-cli -h 192.168.1.100 -p 6379 -a your_password
//如果有密码 使用 -a参数