3

我正在按照说明按照https://shinyproxy.io/security/保护闪亮代理。是否可以在容器中运行 shinyproxy 并绑定到 127.0.0.1 以便我的 nginx 反向代理可以通过proxy_passto转发请求127.0.0.1:8080

所以类似于application.yml 中的sudo docker run -d -p 127.0.0.1:8080:8080 --net sp-example-net -v /var/run/docker.sock:/var/run/docker.sock shinyproxy_base:localhost位置。bind-address: 127.0.0.1

如果我删除bind-address:127.0.0.1并更改-p 8080:8080以便 Shinyproxy 正在侦听0.0.0.0但不建议这样做,则此方法有效。

以上是可能的还是我应该让 docker 容器在 0.0.0.0 上监听?

4

1 回答 1

3

如果一个进程的绑定地址设置为 127.0.0.1,它将无法从其自己的容器外部访问(它绑定到容器私有的 localhost 接口)。由于容器通常只运行一个进程,这使得该进程无法访问。

将容器化进程设置为侦听 0.0.0.0(“所有接口”)通常是安全的。可以从同一 Docker 网络上的其他容器访问它们,但不能从 Docker 外部访问它们,除非您使用docker run -p选项发布该端口。

对于您所描述的内容,将代理设置为 是合理的bind-address: 0.0.0.0,然后使用该docker run -p 127.0.0.1:8080:8080选项限制它的发布位置。这里的地址-p是主机接口之一的地址。

于 2020-08-14T20:19:43.370 回答