通常我们使用下面的命令来启动 redis
容器,此时连接 Redis
的时候是不需要用户认证的
shell
sudo docker run -d --name my-redis -p 6379:6379 redis
此时我们可以使用 redis-server --requirepass "mypassword"
来指定默认用户(default)的密码,客户端可以使用 default/mypassword
来连接 Redis
shell
sudo docker run -d --name my-redis -p 6379:6379 redis redis-server --requirepass "mypassword"
那如果想使用自定义用户名/密码可以通过 redis.conf
来实现。
创建 redis.conf
文件,内容如下
shell
user default off on nopass nocommands
user admin >mypassword on ~* &* +@all
其中第一行是disable默认用户default,第二行是创建 admin/mypassword 用户和分配权限。
然后使用下面命令启动
shell
docker run --name my-redis -p 6379:6379 -v /home/kongxx/redis.conf:/etc/redis.conf redis redis-server /etc/redis.conf
最后,使用compose文件redis.yml,内容如下
shell
name: my-redis
services:
my-redis:
container_name: my-redis
image: redis:latest
restart: always
ports:
- 6379:6379
command: >
--'user default off on nopass nocommands'
--'user admin on >mypassword ~* &* +@all'
启动容器
shell
sudo docker compose -f ./redis.yml up -d