【问题标题】:Dockerfile: how to configure redis properlyDockerfile:如何正确配置redis
【发布时间】:2021-02-22 16:23:58
【问题描述】:

我的码头文件

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 logs -f container_name
  • 我没有运行它分离@AlexeyR.,我可以在我的另一个终端上看到日志。似乎它甚至一开始都没有建立联系。没有任何记录。

标签: docker redis dockerfile


【解决方案1】:

根据Docker documentation

EXPOSE 指令实际上并不发布端口。它充当构建映像的人和运行容器的人之间的一种文档类型,关于打算发布哪些端口。要在运行容器时实际发布端口,请使用 docker run 上的 -p 标志来发布和映射一个或多个端口,或者使用 -P 标志来发布所有暴露的端口并将它们映射到高阶端口。

所以你需要在运行镜像时明确地发布你的端口。例如:

docker run -p 6379:6379 redislabs/rejson

【讨论】:

    猜你喜欢
    • 2019-09-28
    • 2017-12-07
    • 2023-03-23
    • 2017-05-18
    • 2018-05-27
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多