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. 如果没报错,可能就正常启动了。测试
#6.1 直接连接到redis容器中
docker inspect redis | grep IP ---先查询到myredis容器的ip地址。
7. 防火墙设置
#添加(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#重新载入
firewall-cmd --reload
#查看
firewall-cmd --list-ports
8. 测试链接
docker exec -it 8e05d6beb5cf redis-cli
#查看redis里面有没有数据,命令 keys *
#认证 auth "password"
#添加数据 set mykey "tom"
#读取数据 get mykey