我的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.0
和requirepass foobared
我构建了docker文件并运行它,它说它已经准备好接受连接
终端>redis-cli -h localhost -p 6379 -a foobared
它会挂起,甚至不会连接。
我很确定它必须处理港口问题,但无法解决。我做错了什么?
根据Docker文档:
EXPOSE指令实际上并没有发布端口。它的作用是作为构建映像的人和运行容器的人之间的一种文档,说明要发布哪些端口。要在运行容器时实际发布端口,请在docker run中使用-p标志来发布和映射一个或多个端口,或者使用-p标志来发布所有公开的端口并将它们映射到高阶端口。
因此,在运行映像时需要显式发布端口。例如:
docker run -p 6379:6379 redislabs/rejson