Docker容器无法连接到另一个Docker容器中托管的Restful API

时间:2018-08-21 13:01:21

标签: c# docker asp.net-core visual-studio-2017 docker-compose

我已经建立了一个.net core 2 mvc应用程序和一个API应用程序,它们都托管在docker内部用于本地计算机上的Windows,并作为linux容器运行。

我试图让它们在端口80或443上相互通信,而无法让那些端口显示它们是开放的并允许连接。我可以从另一个容器ping这个容器

MVC项目是容器A,api是容器B。

我可以使用分配的localhost:port通过Web浏览器连接到A和B,并查看呼叫是否正常工作和应答。

在容器内的docker上 A可以看到并ping,B可以看到并ping A ... A无法使用B IP和端口组合发送静止呼叫 A不能仅使用B IP向B发送休息呼叫。

由于某种原因,我根本无法使这些容器进行通信。

任何帮助将不胜感激。

Docker-Compose.yml

version: '3.4'

services:
    internalapiservice:
        image: ${DOCKER_REGISTRY}internalapiservice
        network_mode: bridge
        expose: 
            - "44310"
            - "80"
        build:
        context: .
        dockerfile: InternalApiService/Dockerfile

    presentationservice:
        image: ${DOCKER_REGISTRY}presentationservice
        network_mode: bridge
        links:
            - internalapiservice
        build:
        context: .
        dockerfile: PresentationService/Dockerfile

override.yml:

version: '3.4'

services:
    internalapiservice:
        environment:
            - ASPNETCORE_ENVIRONMENT=Development
            - ASPNETCORE_URLS=https://+:443;http://+:80;https://+:45310
            - ASPNETCORE_HTTPS_PORT=44310
        ports:
            - "17399:80"
            - "44310:443"
        volumes:
            - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
            - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
    presentationservice:
        environment:
            - ASPNETCORE_ENVIRONMENT=Development
            - ASPNETCORE_URLS=https://+:443;http://+:80
            - ASPNETCORE_HTTPS_PORT=44365
        ports:
            - "24632:80"
            - "44365:443"
        volumes:
            - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
            - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro

0 个答案:

没有答案