docker - 在具有两个docker compose的容器之间的docker网络中调用Web API

标签 docker asp.net-core .net-core docker-compose docker-network

如何使用Docker网络和包含容器设置的两个不同的docker-compose文件从一个Docker容器向另一个Docker容器发出请求?

我有一个简单的Web API,应该使用此控制台应用程序调用。使用以下docker compose文件托管Web API:

version: '3.5'

services:
  webapi_test:
    image: ${DOCKER_REGISTRY-}webapi_test
    build:
      context: .
      dockerfile: webapi_test/Dockerfile    
    links:
      - mongo
    networks:
      - sample_network
  mongo:
    image: mongo:latest
    container_name: "mongodb"
    ports:
      - "27017:27017"
    command: mongod --smallfiles --logpath=/dev/null # --quiet
    networks:
      - sample_network

networks:
  sample_network:
    name: sample_network

应该使用以下简单的控制台应用程序调用Web API:
class Program
{
    static void Main(string[] args)
    {
        var url = "https://webapi_test:44334/api/Role";
        var client = new HttpClient();
        var result = client.GetStringAsync(url).Result;

        Console.WriteLine($"Result: {result}");
    }
}

Docker由控制台应用程序组成:
version: '3.5'

services:
  networksample:
    image: ${DOCKER_REGISTRY-}networksample
    build:
      context: .
      dockerfile: NetworkSample/Dockerfile
    networks:
      - sample_network

networks:
  simplic_network:
    name: sample_network

据我所知,通信应该在本地docker网络中完成。但是我总是在控制台应用程序中收到以下错误消息:SocketException: Resource temporarily unavailable可以从外部使用Web api:https://localhost:44334/api/Role ...

编辑我只有一个docker主机。

最佳答案

似乎是SSL问题,请尝试用https中的http替换var url = "https://webapi_test:44334/api/Role";

关于docker - 在具有两个docker compose的容器之间的docker网络中调用Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53528665/

相关文章:

.net-core - 使用 .NET Core 3.1 创建单个依赖于框架的 exe 文件并且只包含第三方 dll

.net - 配置 .NET Core 以使用 x86 SDK

drupal - Docker和Drupal 8-settings.php

docker - 将主机端口上运行的应用程序公开给电磁阀

postgresql - 如何将 AWS 中的 docker 容器连接到 RDS

c# - 在生产模式下删除 ASP.NET Core 2.0 中的控制台和调试记录器

angular - 在 ASP.NET Core 中保存 Typescript 文件的位置

docker - 在 google cloud 上用 docker 构建一个 rust 项目非常慢

c# - POST 请求响应 404,而 GET 请求工作正常 .NET Core、React

asp.net-core - 如何在 VS 2017 中更新 Microsoft.NETCore.App SDK 版本