用两个docker组成的容器之间的docker网络调用webapi



如何使用docker网络和两个不同的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}");
}
}

Docker控制台应用程序的组成:

version: '3.5'
services:
networksample:
image: ${DOCKER_REGISTRY-}networksample
build:
context: .
dockerfile: NetworkSample/Dockerfile
networks:
- sample_network
networks:
simplic_network:
name: sample_network

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

编辑我只有一个docker主机。

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

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

最新更新