Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在具有两个docker组件的容器之间的docker网络中调用web api_Docker_Asp.net Core_.net Core_Docker Compose_Docker Network - Fatal编程技术网

在具有两个docker组件的容器之间的docker网络中调用web api

在具有两个docker组件的容器之间的docker网络中调用web api,docker,asp.net-core,.net-core,docker-compose,docker-network,Docker,Asp.net Core,.net Core,Docker Compose,Docker Network,如何使用docker网络和包含容器设置的两个不同docker compose文件从一个docker容器向另一个docker容器发出请求 我有一个简单的web api,应该使用这个控制台应用程序调用它。web api使用以下docker compose文件托管: version: '3.5' services: webapi_test: image: ${DOCKER_REGISTRY-}webapi_test build: context: . do

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

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

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}");
    }
}
version: '3.5'

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

networks:
  simplic_network:
    name: sample_network
Docker由控制台应用程序组成:

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}");
    }
}
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 temporary unavailable
web api从外部可用:
https://localhost:44334/api/Role


编辑我只有一个docker主机。

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

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

样本网络作为外部网络:

version: '3.5'

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

networks:
  simplic_network:
    external:
       name: sample_network

示例_网络
设为外部网络:

version: '3.5'

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

networks:
  simplic_network:
    external:
       name: sample_network

我需要更改端口吗?因为
44334
是通过
https
端口:
-“44334:443”
@BendEg哦!先试试
https://webapi_test:443/api/Role
;在网络内连接时,请使用未发布的公开端口。是否需要更改端口?因为
44334
是通过
https
端口:
-“44334:443”
@BendEg哦!先试试
https://webapi_test:443/api/Role
;在网络内连接时,请使用公开端口,而不是发布端口。