如何使用不同的配置文件在docker上运行Redis?

poi*_*rez 8 redis docker dockerfile

我想在docker上运行的Redis服务器上设置密码.我已经按照https://registry.hub.docker.com/_/redis/上的instcruction进行了操作:

1.我创建了一个包含Dockerfile的文件夹,其中包含:

FROM redis  
COPY redis.conf /usr/local/etc/redis/redis.conf  
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] 
Run Code Online (Sandbox Code Playgroud)

2.我添加了一个redis.conf文件:

requirepass thepassword
Run Code Online (Sandbox Code Playgroud)

3.我使用以下方法构建图像:

docker build -t ouruser/redis .
Run Code Online (Sandbox Code Playgroud)

我开始了容器:

docker run --name my-redis -p 0.0.0.0:6379:6379 -d ouruser/redis redis-server --appendonly yes
Run Code Online (Sandbox Code Playgroud)

redis服务器没有任何密码!我不懂为什么.

Adr*_*uat 14

运行命令:

docker run --name my-redis -p 0.0.0.0:6379:6379 -d ouruser/redis redis-server --appendonly yes
Run Code Online (Sandbox Code Playgroud)

覆盖Dockerfile中定义的CMD redis-server --appendonly yes,因此您的conf文件将被忽略.只需将conf文件的路径添加到run命令中:

docker run --name my-redis -p 0.0.0.0:6379:6379 -d ouruser/redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
Run Code Online (Sandbox Code Playgroud)

或者,设置入口点脚本或添加--appendonly yes到CMD指令.