如何使用不同的configuration文件在Docker上运行Redis?
我想在运行在docker上的Redis服务器上设置一个密码。 我已经按照https://registry.hub.docker.com/_/redis/上的说明进行操作 :
1.我已经创build了一个包含Dockerfile的文件夹:
FROM redis COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
2.我已经添加了一个redis.conf文件:
requirepass thepassword
3.我使用以下方法build立图像:
docker build -t ouruser/redis .
我开始了这个容器:
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文件的path添加到运行命令中即可:
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
或者,设置一个入口脚本或者向CMD指令添加--appendonly yes
。