如何在不使用 Visual Studio 的情况下直接在 Docker 容器上运行 ASP.NET Core Web 应用程序

Posted

技术标签:

【中文标题】如何在不使用 Visual Studio 的情况下直接在 Docker 容器上运行 ASP.NET Core Web 应用程序【英文标题】:How to run an ASP.NET Core Web Application on Dockers container directly without using Visual Studio 【发布时间】:2021-05-02 13:31:54 【问题描述】:

我试图在不使用 Visual Studio 的情况下从 Dockers 容器运行 asp.net 核心 Web 应用程序,但它没有运行。我正在按照this tutorial on Microsoft site 中列出的步骤进行操作。

我已经成功地完成了所有事情:

    创建图像。 使用 ASP.NET Core 应用程序创建和运行容器。

Dockers 桌面显示镜像和容器都在运行。

图片(testn)截图:

容器(myapp)截图:

现在,当我在浏览器中打开应用程序 URL 时,即“http://localhost:8080/”。我收到“此页面无法正常工作”消息。见下图:

我的 Dockerfile 代码是:

FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build-env

WORKDIR /app

# Copy csproj and restore as distinct layers

COPY *.csproj ./

RUN dotnet restore

# Copy everything else and build

COPY . ./

RUN dotnet publish -c Release -o out

# Build runtime image

FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build

WORKDIR /app

COPY --from=build-env /app/out .

ENTRYPOINT ["dotnet", "Testn.dll"]

我在 Dockers Desktop 中使用 Lixus 容器。我的笔记本电脑操作系统是 Windows 10 Home。

我错过了什么?

【问题讨论】:

【参考方案1】:

您的 8080 端口刚刚公开,但未发布亲爱的。 当您要从图像运行容器时,您应该发布您的端口,如下所示: docker run -d -p 8080:8080 testn:latest

【讨论】:

你可以在这里看到暴露和发布的区别:***.com/questions/22111060/…。 您的命令没有运行,它有系统税错误。我运行的命令是docker run -d -p 8080:80 --name myapp testn。它成功运行了容器,但 url 没有在浏览器上打开。我已按照官方文档 itef - devblogs.microsoft.com/premier-developer/… 中提供的此步骤进行操作 谢谢,伙计,我修正了语法:D。您的应用程序正在监听哪个端口?如果您的应用程序正在侦听端口 P1 并且您想访问端口 P2 上的浏览​​器,您应该执行以下操作: docker run -d -p P2:P1 --name myapp testn:latest 根据 url localhost:8080 端口应该是 8080 我刚刚想通了。 3.1 映像工作,但 5.0 映像不工作。

以上是关于如何在不使用 Visual Studio 的情况下直接在 Docker 容器上运行 ASP.NET Core Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在不删除目标文件夹内容的情况下使用 Visual Studio 2008 中的“发布”功能?

如何在不使用 Visual Studio 的情况下直接在 Docker 容器上运行 ASP.NET Core Web 应用程序

如何在不安装 Visual Studio C++ 的情况下安装人脸识别

如何在不显式编译的情况下让 Visual Studio 错误检查我的代码(显示曲线)?

如何在不使用 Visual Studio 作为先决条件的情况下使用 node js javascript 连接到 oracle 数据库

是否可以在不购买 Visual Studio 许可证的情况下使用团队资源管理器进行版本控制?