Docker 启动Redis 并设置密码的操作

admin
admin
admin
1980
文章
5
评论
2021年10月14日10:25:51Docker 启动Redis 并设置密码的操作已关闭评论 18 2841字阅读9分28秒

redis使用 redis version 5的apline(阿尔卑斯)镜像,小巧快速

新建一个docker-compose.yml文件

直接启动,不需连接密码配置如下:

version: '3.3'

services:
 cache:
  image: redis:5-alpine
  restart: always
  ports:
   - "6379:6379"

端口映射为: 6379 (redis默认端口)

在docker-compose.yml文件的目录下运行下面指令,启动Redis:

docker-compose up -d

Tip: 如果设置主机上设置了docker服务的开机启动,那么机器重启后,redis也会自动启动。

如果需要设置链接密码:

version: '3.3'

services:
 cache:
  image: redis:5-alpine
  restart: always
  ports:
   - "6379:6379"
  command: ["redis-server", "--appendonly", "yes", "--requirepass","123456"]

--requirepass后面参数就是需要设置的链接密码

停止Redis,在docker-compose.yml文件的目录下运行下面指令

docker-compose down

补充知识:在yum 安装(docker方式安装)的redis 配置认证密码 和 限定IP登录

一.redis配置密码

1.通过配置文件进行配置

yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到

#requirepass foobared

去掉行前的注释,并修改密码为所需的密码,保存文件

requirepass myRedis

重启redis

sudo service redis restart

或者

sudo service redis stop

sudo redis-server /etc/redis.conf

这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许

redis-cli -h 127.0.0.1 -p 6379 
redis 127.0.0.1:6379> 
redis 127.0.0.1:6379> keys * 
(error) ERR operation not permitted 
redis 127.0.0.1:6379> select 1 
(error) ERR operation not permitted 
redis 127.0.0.1:6379[1]>  

尝试用密码登录并执行具体的命令看到可以成功执行

redis-cli -h 127.0.0.1 -p 6379 -a myRedis

redis 127.0.0.1:6379> keys *

1) "myset"

2) "mysortset"

redis 127.0.0.1:6379> select 1 
OK 
redis 127.0.0.1:6379[1]> config get requirepass 

1) "requirepass"

2) "myRedis"

2.通过命令行进行配置

redis 127.0.0.1:6379[1]> config set requirepass my_redis 
OK 
redis 127.0.0.1:6379[1]> config get requirepass 

1) "requirepass"

2) "my_redis"

无需重启redis

使用第一步中配置文件中配置的老密码登录redis,会发现原来的密码已不可用,操作被拒绝

redis-cli -h 127.0.0.1 -p 6379 -a myRedis 
redis 127.0.0.1:6379> config get requirepass 
(error) ERR operation not permitted 

使用修改后的密码登录redis,可以执行相应操作

redis-cli -h 127.0.0.1 -p 6379 -a my_redis

redis 127.0.0.1:6379> config get requirepass

1) "requirepass"

2) "my_redis

尝试重启一下redis,用新配置的密码登录redis执行操作,发现新的密码失效,redis重新使用了配置文件中的密码

sudo service redis restart 
Stopping redis-server:                   [ OK ] 
Starting redis-server:                   [ OK ] 
redis-cli -h 127.0.0.1 -p 6379 -a my_redis 
redis 127.0.0.1:6379> config get requirepass 
(error) ERR operation not permitted 
redis-cli -h 127.0.0.1 -p 6379 -a myRedis 
redis 127.0.0.1:6379> config get requirepass 

1) "requirepass"

2) "myRedis"

除了在登录时通过 -a 参数制定密码外,还可以登录时不指定密码,而在执行操作前进行认证。

redis-cli -h 127.0.0.1 -p 6379 
redis 127.0.0.1:6379> config get requirepass 
(error) ERR operation not permitted 
redis 127.0.0.1:6379> auth myRedis 
OK 
redis 127.0.0.1:6379> config get requirepass 

1) "requirepass"

2) "myRedis"

3.master配置了密码,slave如何配置

若master配置了密码则slave也要配置相应的密码参数否则无法进行正常复制的。

slave中配置文件内找到如下行,移除注释,修改密码即可

#masterauth mstpassword

3.在docker中的redis 进行配置

a. 编写Dockerfile文件

FROM redis
MAINTAINER "roamer "
#自定义的配置文件,以替换原有image中的配置文件
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
#RUN apt-get update && apt-get install vim -y

b.编写redis的配置文件

这个文件通过Dockerfile进行build的时候,复制到redis container里面,并且通过启动redis-server的时候指定使用这个配置文件

c. builder docker 的容器

docker build -t simba/redis .

d. 运行docker容器

docker run --name simba-redis -d -p 16379:6379 --restart=always simba/redis

e.配置只允许特定ip访问redis-server

在配置文件中查找

bind 127.0.0.1

部分进行设置

文章来源于互联网:Docker 启动Redis 并设置密码的操作

未分类