gpt4 book ai didi

Docker - 无法从本地主机访问服务

转载 作者:行者123 更新时间:2023-12-02 05:05:09 27 4
gpt4 key购买 nike

我创建了一个如下所示的 Dockerfile:

FROM openjdk:8-jdk

COPY . .
ENTRYPOINT ["/bin/graphdb"]

EXPOSE 7200

在执行 docker run 34a1650b461d -p 127.0.0.1:7200:7200 时,我看到我的服务正在运行,如终端输出所示 - 但是当我转到 localhost:7200 时> 我不断看到此站点无法访问 127.0.0.1 拒绝连接。

谁能解释一下我错过了什么?

另外仅供引用 - 当我执行 docker ps 时,在 PORTS 下我看到 7200/tcp

我读到this page并按照所描述的内容进行操作,但没有成功。

感谢任何帮助。

谢谢。

最佳答案

对于docker run参数的顺序很重要,所以这样:

docker run 34a1650b461d -p 7200:7200

不等于:

docker run -p 7200:7200 34a1650b461d

在第一种情况下,您将参数 -p 7200:7200 传递给 ENTRYPOINT 命令 /bin/graphdb;而在第二种情况下,您将 -p 7200:7200 传递给 docker run,这正是您想要的。

如何验证端口是否正确转发?

您可以通过运行 docker ps 并检查 PORTS 列来验证这一点:

$ docker run -d 34a1650b461d -p 7200:7200
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
03abc0b390ef mytest "/bin/graphdb -p 720…" 6 seconds ago Up 5 seconds 7200/tcp elegant_wescoff

你看到COMMAND是如何包含你的-p了吗?那不是你想要的。所以 docker run 根本没有解释该参数。此外,您还可以看到 PORTS 列,该列显示端口已公开但未转发。

虽然这样做:

$ docker run -d -p 7200:7200 34a1650b461d
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
03abc0b390ef mytest "/bin/graphdb" 6 seconds ago Up 5 seconds 0.0.0.0:7200->7200/tcp elegant_wescoff

您现在可以看到 -p 没有传递给 COMMAND 并且端口已转发:0.0.0.0:7200->7200/tcp .

关于Docker - 无法从本地主机访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com