docker安装redis挂载外部配置文件

下载redis镜像

docker pull redis

配置data、conf

mkdir -p ./docker/redis/data
mkdir -p ./docker/redis/conf

增加redis.conf

我是本身centos中已经有redis,直接cp就ok

配置redis.conf

配置外网访问

原文件:

bind 127.0.0.1
protected-mode yes
appendonly no//持久化
# requirepass foobared

修改后:

#bind 127.0.0.1
protected-mode no
appendonly yes//持久化
requirepass yourpassword

ps:

protected-mode 是在没有显示定义 bind 地址(即监听全网断),又没有设置密码 requirepass
时,只允许本地回环 127.0.0.1 访问。 也就是说当开启了 protected-mode 时,如果你既没有显示的定义了 bind
监听的地址,同时又没有设置 auth 密码。那你只能通过 127.0.0.1 来访问 redis 服务

启动redis

创建并运行一个名为 myredis 的容器

docker run \
-p 6379:6379 \
-v /usr/mine/program/docker/redis/data:/data \
-v /usr/mine/program/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
--privileged=true \
--name myredis \
-d docker.io/redis:latest redis-server /etc/redis/redis.conf

命令分解

docker run -p 6379:6379 -v /docker/redis/data:/data:rw -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf:ro --privileged=true --name myredis -d docker.io/redis:latest redis-server /etc/redis/redis.conf

docker run \
-p 6379:6379 \ # 端口映射 宿主机:容器
-v /docker/redis/data:/data:rw \ # 映射数据目录 rw 为读写
-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf:ro \ # 挂载配置文件 ro 为readonly
--privileged=true \ # 给与一些权限
--name myredis \ # 给容器起个名字
-d docker.io/redis:latest redis-server /etc/redis/redis.conf # deamon 运行 服务使用指定的配置文件

查看状态

docker ps

结束

38202237a1f740ed9d87e4f13222f1b0-image.png

备注

为现有的redis创建密码或修改密码的方法:

1.进入redis的容器 docker exec -it 容器ID bash

2.进入redis目录 /usr/local/bin

3.运行命令:redis-cli

4.查看现有的redis密码:config get requirepass

5.设置redis密码config set requirepass ****(****为你要设置的密码)

6.若出现(error) NOAUTH Authentication required.错误,则使用 auth 密码 来认证密码


已有 0 条评论

    我有话说: