[转发]docker 安装redis 并配置外网可以访问

首先通过命令拉取一个最新的redis

可以通过 dockerHub去获取最新的Redis镜像,地址:

https://hub.docker.com/_/redis?tab=tags

 

拉取最新镜像

docker pull redis

 

拉取redis镜像完成后,随便找一个地方创建一个配置文件

#创建配置文件;
mkdir -p /data/redis/data 
chmod -R 777 /data/redis/data  #给予读写权限
chmod -R 777 /data/redis/      #给予读写权限
vim /data/redis/redis.conf #打开文本编辑器

#将以下内容复制进去
bind 0.0.0.0 #有了这个才能让外网访问
daemonize 
NOprotected-mode no
requirepass 我是密码123 #密码
port 2200 #设置端口 这里也可以不设置

#输入以上内容后 sec : wq 保存退出

 

开始运行docker run

运行语法如下: 

docker run -p 2200 :2200 \
 --name redis1938  \
  -v /data/redis/redis.conf:/etc/redis/redis.conf  \
  -v /data/redis/data:/data  \ 
  -d redis redis-server   /etc/redis/redis.conf --appendonly yes

  

完成;

试错的过程思想:

当总是一直连接不上redis的时候( 在docker ps 中是正常运行,但是无法通过外部连接连接redis )

1. 通过find / -name redis.conf 查看配置文件的内容有没有被复制进去;

2. 发现没有;

3. 看自己写的 redis.conf文件 通过排除法排除参数内的内容;

3.1 去掉bind 尝试连接

3.2 去掉密码 尝试连接

4. 通过 docker  exec -it 容器ID redis-cli 进去

再使用2步骤的排除法;

连接进去后首先新增redis.conf 中的密码;

后get a

发现提示 密码有误!(ok 到这里就可以确定 redis.conf 文件是被加载进docker里面了)

看redis-cli 里面的命令符: 发现是  127.0.0.1:6379

推测可能是 redis。conf 中需要配置 port

docker kill redis的ID

docker rm redis的ID

重新修改/data/redis//redis.conf

​添加: port 2000保存退出

重新运行docker run

成功连接 ~!

 

转发自: https://www.lesg.cn/Article-56460.html

 

posted @ 2021-01-07 20:57  wcgsir1  阅读(168)  评论(0)    收藏  举报