gpt4 book ai didi

linux - 如何构造我的 URL 以将 GraphQL 请求发送到从 Windows 机器在 Linux 机器上的容器内运行的应用程序?

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:32 25 4
gpt4 key购买 nike

我在 AWS 云上分配了一台 linux 机器,我在 AWS 云上这台 linux 机器内的 docker 容器中运行我的 SpringBoot 应用程序。要从我的 Windows 笔记本电脑访问此应用程序的 graphQL 端点,我应该使用什么主机名或 URL?我该如何构图?

一般来说,如果这个应用程序在我的本地运行,我会使用类似 http://localhost:8080/graphQL 的东西.

此应用程序的 DockerFile 具有此命令 -> EXPOSE 8080。

我很困惑,因为有一个 linux 机器 ip 地址和容器 ip 地址,我不知道该使用哪个,所以我都尝试了。

在那台 Linux 机器上,我在它的终端上输入了“IP 地址”,它向我抛出一堆信息,我不确定哪个是我的 IP 地址。

为了获取容器的 IP 地址,我使用了下面的命令,它返回了一些地址。我用过https://172.17.5.3:8080/graphql从我的 Windows 笔记本电脑,但它没有返回响应。

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}} 
{{end}}' container_name_or_id

如有任何其他信息,请告诉我。

最佳答案

The DockerFile for this application has this command -> EXPOSE 8080.

EXPOSE 指令实际上并没有做任何事情(在这种情况下)。它提供了信息:它告诉您容器将在端口 8080 上运行服务。默认情况下,这不会从 Docker 主机外部可用。

您可以在启动容器时通过“发布”它来在您的 Linux 机器上公开此端口。您可以使用 --publish (-p) 选项到 docker run 来执行此操作。例如,如果您要像这样启动容器:

docker run -p 8080:8080 ...

假设没有阻止连接的防火墙规则,您就可以访问 Linux 机器 IP 地址或主机名的端口 8080 上的服务。

您可以在 this document 中阅读更多关于 Docker 端口发布(和一般网络)的信息.

On that linux machine I typed 'ip address' on its terminal and it is throwing me bunch of information and I am not sure which one is my ip address.

您通常会使用实例的公共(public) IP 地址。 This document包含有关在 AWS 中使用公共(public) IP 地址的信息。

关于linux - 如何构造我的 URL 以将 GraphQL 请求发送到从 Windows 机器在 Linux 机器上的容器内运行的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57502716/

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