redis使用 redis version 5的apline(阿尔卑斯)镜像,小巧快速
新建一个docker-compose.yml文件
直接启动,不需连接密码配置如下:
1
2
3
4
5
6
7
8 |
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也会自动启动。
如果需要设置链接密码:
1
2
3
4
5
6
7
8
9 |
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,发现可以登上,但是执行具体命令是提示操作不允许
1
2
3
4
5
6
7 |
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"
1
2
3 |
redis 127.0.0.1:6379> select 1
OK
redis 127.0.0.1:6379[1]> config get requirepass |
1) "requirepass"
2) "myRedis"
2.通过命令行进行配置
1
2
3 |
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,会发现原来的密码已不可用,操作被拒绝
1
2
3 |
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重新使用了配置文件中的密码
1
2
3
4
5
6
7
8 |
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 参数制定密码外,还可以登录时不指定密码,而在执行操作前进行认证。
1
2
3
4
5
6 |
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文件
1
2
3
4
5
6 |
FROM redis
MAINTAINER "roamer <roamerxv@gmail.com>"
#自定义的配置文件,以替换原有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的时候指定使用这个配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|