Docker 包含多个服务的容器

Docker Container Containing Multiple Services

我正在尝试构建一个包含 3 个应用程序的容器,例如:

所以我只需要公开一个 por,例如:

端口 3001/grafana 上的 NGINX 反向代理重定向到端口 3000 上的 grafana 并且; 端口 3001/nodered 上的 NGINX 反向代理重定向到端口 1880 上的 nodered。

它在你的愿景中有意义吗?或者这个架构如果和dockercompose相比是不可行的?

如果我没理解错的话,你担心的是只公开开放一个端口。

为此,您最好构建 3 个单独的容器,每个容器都有自己的服务,并且都在同一个 docker 网络中。您可以像您在虚拟网络中描述的那样插入您的服务,而不是在同一个容器中。

为什么?因为容器是专门为单个应用程序保存环境而设计的,为了提供隔离和减少兼容性问题,所有网络配置都在容器之外的更高级别完成。

将所有服务放在同一个容器中会阻碍容器化应用程序的上述优势。这几乎就像你甚至没有使用容器。