将 docker 容器中的 Rust API 暴露给外界

问题描述 投票:0回答:1

我已身陷深水

我用 Rust 制作了一个 API,与 postgres 数据库和 portainer docker 容器一起部署在 ubuntu 服务器上的 Docker 容器上。 使用浏览器连接 postgres 数据库或 portainer 并连接到数据库没有问题。

但是,我似乎不知道如何打开以便连接到 Rust API。我已将端口公开为 8080:8080。 我无法在终端中使用curl进行本地连接,然后使用get请求,也无法按照目标进行外部连接。

我正在使用以下方式运行容器:

docker run --publish 80:8080 rust_api

使用

curl --request GET https://127.0.0.1:8080/test
它应该返回一个简单的“确定”和“嘿我还在这里”消息。 但我却得到了

curl: (35) error:0A000126:SSL routines::unexpected eof while reading

外部连接我得到一个

ERR_CONNECTION_REFUSED
,这是问题的第二部分。我尝试使用
sudo ufw allow 8080
打开端口,但这似乎不起作用。

所以基本上我需要帮助,为什么我什至无法从服务器内部调用 API,其次我如何才能使用服务器 IP 在外部调用它。

docker ubuntu rust linode
1个回答
0
投票

根据 Hans Kilian 的解决方案,通过在 Rust 程序中绑定到 0.0.0.0 而不是 127.0.0.1 来解决。

© www.soinside.com 2019 - 2024. All rights reserved.