gpt4 book ai didi

nginx - 如何仅在 docker 网络中公开端口?

转载 作者:行者123 更新时间:2023-12-02 20:32:23 24 4
gpt4 key购买 nike

我有一些应用程序在 Docker 网络中运行,它们的端口(30004200 等)已暴露。我还有一个 nginx 容器在同一个 Docker 网络中运行,该容器在端口 80 上托管这些应用程序,这些应用程序具有不同的域名(site1.comsite2.com)。

但现在,如果我直接访问应用程序运行所在的端口 (localhost:3000),我也可以通过这种方式访问​​它们。

如何将这些端口仅公开给 nginx 容器而不是主机系统?

最佳答案

But right now if I go directly to the ports the apps are running on (localhost:3000) I can access them that way too.

那是因为您在 docker run

中使用 -p aka --publish 命令

说明:

如果你只想暴露容器之间的端口,不要使用 -p--publish 只需将它们放在同一个 docker 网络上即可。

示例:

让我们创建一个新的用户定义网络:

sudo docker network create appnet

让我们为反向代理创建 nginx 容器,它应该可供外界使用,所以我们使用发布。

sudo docker run --name nginx -d --network appnet nginx

现在将您的应用放在同一个网络中,但不要暴露端口。

sudo docker run --name app1 -d --network appnet <app image name/id>

关于nginx - 如何仅在 docker 网络中公开端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42731311/

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