1. 拉取镜像
docker pull redis
2. 创建挂在目录
mkdir -p /home/redis/data
3. 准备redis配置文件
#在/home/redis下存放redis.conf文件,配置文件可从官网下载。#redis.conf需要改动四个配置
daemonize no #用守护线程的方式启动
requirepass yourpassword #给redis设置密码
bind 192.168.1.1 #注释掉这部分,这是限制redis只能本地访问
appendonly yes #redis 持久化
4. 启动redis
docker run -d -v /home/redis/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 --name redis --privileged=true -v /home/redis/data:/data redis redis-server /usr/local/etc/redis/redis.conf
#命令说明:
--name redis : 指定容器名称,这个最好加上,不然在看docker进程的时候会很尴尬。
-p 6379:6379 : 端口映射,默认redis启动的是6379,至于外部端口,随便玩吧,不冲突就行。
-v /home/redis/redis.conf:/usr/local/etc/redis/redis.conf : 将主机中当前目录下的redis.conf配置文件映射。
-v /home/redis/data:/data -d redis : 将主机中当前目录下的data挂载到容器的/data
--redis-server --appendonly yes :在容器执行redis-server启动命令,并打开redis持久化配置(如果redis.conf已改,这段可取消)
#注意事项:
如果不需要指定配置
-v /home/redis/redis.conf:/usr/local/etc/redis/redis.conf 可以不用 ,
redis-server 后面的那段 /usr/local/etc/redis/redis.conf 也可以不用。
5. 如果报错
Error response from daemon: driver failed programming external connectivity on endpoint redis
解决:重启docker===>>>systemctl restart docker
6. 防火墙设置
#添加(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#重新载入
firewall-cmd --reload
#查看
firewall-cmd --list-ports