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

How to run Redis on docker with a different configuration file?

我想在 docker 上为我的 Redis 服务器 运行 设置密码。我已按照 https://registry.hub.docker.com/_/redis/:

上的说明进行操作

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

FROM redis  
COPY redis.conf /usr/local/etc/redis/redis.conf  
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] 

2.I 添加了 redis.conf 文件:

requirepass thepassword

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

docker build -t ouruser/redis .

4.I 启动了容器:

docker run --name my-redis -p 0.0.0.0:6379:6379 -d ouruser/redis redis-server --appendonly yes

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

运行命令:

docker run --name my-redis -p 0.0.0.0:6379:6379 -d ouruser/redis redis-server --appendonly yes

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

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

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