繁体   English   中英

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

[英]In Docker for windows, how do i access a webapi running on my dev machine from the container i aslo have on my machine?

我目前正在使用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

容器化的应用程序到达主机上甚至其他容器上运行的应用程序应该没有任何问题。 问题可能出在.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执行请求的应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM