簡體   English   中英

我無法從瀏覽器訪問 AWS 中的 ec2 實例

[英]I cannot reach from a browser to ec2 instance in AWS

我編寫了一個非常簡單的 spring-boot 應用程序並將其打包到 Docker 中。

docker文件內容為:

FROM openjdk:13
ADD target/HelloWorld-1.0-SNAPSHOT.jar HelloWorld.jar
EXPOSE 8085
ENTRYPOINT ["java", "-jar", "HelloWorld.jar"]

我把它推送到 docker hub。

我在 aws 上創建了一個新的 EC2 實例。 然后我連接到它並輸入以下命令:

sudo yum update -y
sudo yum install docker -y
sudo service docker start
sudo docker run -p 80:8085 ****/docker-hello-world

最后一個命令在屏幕上給出了許多消息,表明 spring-boot 應用程序正在運行。

看起來很棒。 但是,當我打開瀏覽器並輸入:“ http://ec2-54-86-87-68.compute-1.amazonaws.com/ ”(EC2 機器的公共 DNS)時。 我收到“無法訪問此站點”。

你知道我做錯了什么嗎?

編輯:關於這台機器的安全組是“默認”和我定義的以下組:

在此處輸入圖片說明

在 EC2 機器內,我輸入:“curl localhost:8085”並得到:“curl: (52) Empty reply from server”

確保在 ec2 實例安全組配置中為本地 IP 地址啟用端口的入站流量

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html#adding-security-group-rule

您是否在安全組配置中允許端口 8085 的入站流量? 這應該是首先要檢查的事情。

我找到了解決方案。

是端口問題。 而不是跑步

sudo docker run -p 80:8085 ****/docker-hello-world

我不得不跑:

sudo docker run -p 8085:8080 ****/docker-hello-world

這個命令說:“將應用程序中運行在端口 8080 上的應用程序放在 docker 上的端口 8085 上”。

我打開瀏覽器並瀏覽到:“ http://ec2-18-207-188-57.compute-1.amazonaws.com:8085/hello ”並得到了我預期的響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM