Asp.net 在Docker for windows中,如何从我的机器上的容器访问在我的开发机器上运行的webapi?
我目前正在运行docker for windows,其容器使用asp.net core 2.0映像 我还有一个web api应用程序在开发机器上的iis上运行(与容器安装docker的机器相同) 我需要能够对我的开发机器上的API发出API请求 我好像没法让它工作 任何帮助都将不胜感激 更新: 我的docker文件Asp.net 在Docker for windows中,如何从我的机器上的容器访问在我的开发机器上运行的webapi?,asp.net,windows,docker,Asp.net,Windows,Docker,我目前正在运行docker for windows,其容器使用asp.net core 2.0映像 我还有一个web api应用程序在开发机器上的iis上运行(与容器安装docker的机器相同) 我需要能够对我的开发机器上的API发出API请求 我好像没法让它工作 任何帮助都将不胜感激 更新: 我的docker文件 FROM microsoft/aspnetcore:2.0 AS base WORKDIR /app EXPOSE 80 FROM microsoft/aspnetcore-bui
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
您的容器化应用程序访问主机上运行的应用程序或其他容器应该不会有任何问题。问题可能在.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 .
要运行容器(以及应用程序),请执行以下操作:
您可能不需要端口设置,因为您运行的应用程序是对IIS中运行的Web API执行请求的应用程序。您能否提供有关该场景的更多详细信息?您的容器应该是执行对IIS中的Web API应用程序的请求的容器吗?如果是,您是否会发布用于创建图像的.dockerfile文件以及要创建和运行容器的设置?请参阅编辑。谢谢容器正试图在本地计算机上执行对api的请求
docker run --name myapp -p 4000:5050 app-image