1、启动docker

systemctl start docker

2、拉取redis镜像

docker pull redis:5.0.3

注意,如果不注明版本号,则拉取最新版本

3、创建本地redis挂载目录

mkdir -p /root/redis/data /root/redis/conf

4、创建redis.conf文件

touch /root/redis/data /root/redis/conf/redis.conf

5、修改redis.conf文件

下载链接:https://www.lanzoux.com/i68hlah

该配置文件可自行在网上下载,http://download.redis.io/releases/,主要修改如下几个配置。

修改之前:

bind 127.0.0.1
protected-mode yes
#requirepass yourpassword  

修改之后:

#bind 127.0.0.1
protected-mode no
requirepass yourpassword  

其中 yourpassword 为你的密码。

6、创建redis容器

docker run -d --name redis -p 6379:6379 -v /root/redis/conf/redis.conf:/redis.conf -v /root/redis/data:/data redis:5.0.3 redis-server --appendonly yes

-d 后台运行
-p 端口映射到主机的端口
-v 将主机目录挂载到容器的目录
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置

7、启动创建的redis容器

docker start redis

执行如上命令如果报如下错误时:

Error response from daemon: driver failed programming external connectivity on endpoint redis (086c7fdf5eb7a696753d7414e93202eefd474370658e8c090bca5608c6e29a11):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6379 -j DNAT --to-destination 172.17.0.2:6379 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1))
Error: failed to start containers: redis

解决方法:重启docker,然后再重启redis容器

systemctl restart docker
docker start redis

8、开启防火墙6379端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

9、本地连接测试

10、连接错误

连接失败的话,首先检查是否能在服务端登陆redis

docker exec -it redis redis-cli

进入redis后输入如下指令:

auth "你的密码"

如果提示:

(errorERR Client sent AUTH, but no password is set

说明我们设置的密码并没有生效,那么需要再执行一下如下指令:

config set requirepass “你的密码”

我创建了一个java相关的公众号,用来记录自己的学习之路,感兴趣的小伙伴可以关注一下微信公众号哈:niceyoo

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/niceyoo/p/11544587.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!