首页 文章

在Docker for windows中,我如何从我的机器上的容器访问我的开发机器上运行的webapi?

提问于
浏览
0

我目前正在使用asp.net core 2.0映像运行带有容器的windows的docker .

我还在开发机器上的iis上运行了一个web api应用程序(我在机器上安装了docker的同一台机器)

我需要能够在我的开发机器上向api发出API请求 .

我似乎无法让这个工作 .

任何帮助,将不胜感激

更新:

我的泊坞文件

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY mysol.sln ./
COPY mysol.Web/mysol.Web.csproj mysol.Web/
RUN dotnet restore -nowarn:msb3202,nu1503

COPY . .
WORKDIR /src/CraOrchestrator.Web
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "mysol.Web.dll"]

我正在运行容器

docker run -dit -p 1253:80 -v c:/data:/data --name sol mysol:latest

1 回答

  • 1

    您的容器化应用程序应该没有任何问题来访问在主机上运行的应用程序甚至是不同的容器 . 问题可能出在.dockerfile中 .

    您只需要图像中的可执行文件即可正确运行您的应用程序 . 您的.dockerfile可能如下所示:

    # use microsoft dotnet core as base image - including ASP.NET Core
    FROM microsoft/dotnet:2.0.5-runtime
    
    # set the working directory
    WORKDIR /app
    
    # copy executables
    ADD . /app
    
    # make port 5050 available - should not matter much since this is a client app
    EXPOSE 5050
    
    # run app
    CMD ["dotnet", "mysol.Web.dll"]
    

    要创建图像:

    docker build -t app-image .
    

    要运行容器(以及您的应用程序):

    docker run --name myapp -p 4000:5050 app-image
    

    您可能不需要端口设置,因为您运行的应用程序是对IIS中运行的Web API执行请求的应用程序 .

相关问题