我正在创建两个docker容器,一个前端,另一个是.net核心API。但是当我从前端调用API时,出现如下异常,
SocketException:无法分配请求的地址 System.Net.Http.ConnectHelper.ConnectAsync(字符串主机,整数端口,CancelationToken cancelToken)
HttpRequestException:无法分配请求的地址 System.Net.Http.ConnectHelper.ConnectAsync(字符串主机,整数端口,CancelationToken cancelToken)
我还添加了一个docker compose文件来启用多容器部署,但是没有用。这是yml文件,
services:
dockerdemofrontend:
image: ${DOCKER_REGISTRY-}dockerdemofrontend
build:
context: .
dockerfile: DockerDemoFrontEnd/Dockerfile
dockerdemoapi:
image: ${DOCKER_REGISTRY-}dockerdemoapi
build:
context: .
dockerfile: DockerDemoAPI/Dockerfile
我感觉这两个网络是不同的。我们需要做些什么才能使这两个话题说话。请在这方面帮助我。
答案 0 :(得分:0)
您可以为两个服务分配一个网络,例如
services:
dockerdemofrontend:
image: ${DOCKER_REGISTRY-}dockerdemofrontend
build:
context: .
dockerfile: DockerDemoFrontEnd/Dockerfile
networks:
- common
dockerdemoapi:
image: ${DOCKER_REGISTRY-}dockerdemoapi
build:
context: .
dockerfile: DockerDemoAPI/Dockerfile
networks:
- common
networks:
common:
driver: bridge
,然后您的主机将成为服务ex的名称:dockerdemoapi,端口将是您的api在内部运行的端口号
答案 1 :(得分:0)
在前端服务中使用depends_on
,以使api始终始终首先加载。另外,请将它们都添加到同一网络中,否则您将无法通过服务名称来引用它们。
version: "3"
services:
dockerdemofrontend:
image: ${DOCKER_REGISTRY-}dockerdemofrontend
build:
context: .
dockerfile: DockerDemoFrontEnd/Dockerfile
depends_on:
- dockerdemoapi
networks:
- shared
dockerdemoapi:
image: ${DOCKER_REGISTRY-}dockerdemoapi
build:
context: .
dockerfile: DockerDemoAPI/Dockerfile
networks:
- shared
networks:
shared:
driver: bridge