Dockerfile:如何正确配置redis



我的dockerfile

FROM redislabs/rejson:latest
COPY redis.conf /usr/local/etc/redis/redis.conf
VOLUME ["/data"]
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]
EXPOSE 6379

在我的redis.conf中,我设置了bind 0.0.0.0requirepass foobared

我构建了docker文件并运行它,它说它已经准备好接受连接

终端>redis-cli -h localhost -p 6379 -a foobared

它会挂起,甚至不会连接。

我很确定它必须处理港口问题,但无法解决。我做错了什么?

根据Docker文档:

EXPOSE指令实际上并没有发布端口。它的作用是作为构建映像的人和运行容器的人之间的一种文档,说明要发布哪些端口。要在运行容器时实际发布端口,请在docker run中使用-p标志来发布和映射一个或多个端口,或者使用-p标志来发布所有公开的端口并将它们映射到高阶端口。

因此,在运行映像时需要显式发布端口。例如:

docker run -p 6379:6379 redislabs/rejson

最新更新