【问题标题】:How to establish communication between Angular 9 container and ASP.NET Core 3.1 container using container names instead of static IP?如何使用容器名称而不是静态 IP 在 Angular 9 容器和 ASP.NET Core 3.1 容器之间建立通信?
【发布时间】:2020-07-04 01:26:17
【问题描述】:

所以我有 2 个容器在我的本地机器上运行。我希望他们通过 docker 本身的网络在内部进行通信,而不必通过主机。

例如:我想从 Angular 容器调用 API 到后端容器,并且我想在我在 Angular 代码中编写的 url 中实现类似的功能

“后端容器名称/api/resource”而不是“http://natIP:port/api/resource”

【问题讨论】:

  • 如果一部分是 Angular 应用程序,它在您的浏览器中运行,而不是在 Docker 内部(即使内容是从 Docker 容器中提供的),因此您不能使用任何 Docker-相关的网络功能。
  • @DavidMaze 那么,您认为 Anuraj 的回答也行不通吗?我之前没有真正使用过撰写

标签: angular docker asp.net-core docker-networking


【解决方案1】:

如果您使用 Docker compose 来配置容器,则可以使用服务名称作为容器名称并进行通信。

这里是一个 docker compose 文件的例子。

版本:“3”

services:
    web:
        build: .
        ports:
            - "8000:80"
        depends_on:
            - db
    db:
        image: "mcr.microsoft.com/mssql/server"
        environment:
            SA_PASSWORD: "Your_password123"
            ACCEPT_EULA: "Y"

您可以在连接字符串中将 SQL Server 名称称为 db。同样,您可以创建一个 API 服务器并使用服务名称。

【讨论】:

  • 我认为这也应该在不依赖 docker compose 的情况下完成。如果是这样,有什么替代方法?
猜你喜欢
  • 2023-01-31
  • 1970-01-01
  • 2021-01-08
  • 2015-09-17
  • 2016-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
相关资源
最近更新 更多