Dockerize an ASP.NET Core application
2024-10-16 06:23:22
原文:Dockerize an ASP.NET Core application
介绍
本示例演示了如何对ASP.NET Core应用程序进行容器化。
为什么要构建ASP.NET Core?
- 开源
- 在Windows、MacOS和Linux上跨平台开发和运行ASP.NET Core应用
- 非常适合现代基于云的应用程序,例如Web应用程序,IoT应用程序和移动后端
- ASP.NET Core应用程序可以在.NET Core或完整的.NET Framework上运行
- 旨在为部署到云或本地运行的应用程序提供优化的开发框架
- 具有最小开销的模块化组件可在构建解决方案时保持灵活性
先决条件
本示例假定您的计算机上已经有一个ASP.NET Core应用程序。如果您不熟悉ASP.NET,则可以按照一个简单教程来初始化项目或克隆我们的ASP.NET Docker示例。
为ASP.NET Core应用程序创建Dockerfile
- 在您的项目文件夹中创建一个
Dockerfile
。 - 将以下文本添加到Linux或Windows容器的
Dockerfile
中。以下标签是多体系结构的,这意味着它们会根据Docker Desktop for Windows中设置的模式拉入Windows或Linux容器。阅读有关切换容器的更多信息。 Dockerfile
假定您的应用程序名为aspnetapp
。将Dockerfile
更改为使用项目的DLL文件。
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 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/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
- 要使构建上下文尽可能小,请将
.dockerignore
文件添加到项目文件夹,然后将以下内容复制到其中。
bin/
obj/
构建并运行Docker映像
- 打开命令提示符,然后导航到您的项目文件夹。
- 使用以下命令来构建和运行您的Docker映像:
$ docker build -t aspnetapp。
$ docker run -d -p 8080:80 --name myapp aspnetapp
查看从容器运行的网页
- 转到localhost:8080在Web浏览器中访问您的应用程序。
- 如果您使用的是Nano Windows容器,但尚未更新至Windows Creator更新,则存在一个错误会影响Windows 10如何通过"NAT"(网络地址转换)与容器进行对话。您必须直接点击容器的IP。您可以通过以下步骤获取容器的IP地址:
- 运行
docker inspect -f“ {{.NetworkSettings.Networks.nat.IPAddress}}” myapp
- 复制容器IP地址并粘贴到浏览器中。 (例如
172.16.240.197
)
- 运行
进一步阅读
- ASP.NET Core
- Docker Hub上的Microsoft ASP.NET Core
- 为ASP.NET Core构建Docker映像
- Docker Tools for Visual Studio
最新文章
- CSS导航的魔力——源自温谦老师《CSS彻底研究设计》
- sql date()函数
- oracle ebs request一直pending
- DNF技能贴图的研究
- ASP.NET 使用mode=”InProc”方式保存Session老是丢失,无奈改成StateServer 模式。
- What's the difference between all the Selection Segues
- 详细介绍Linux shell脚本基础学习
- 驱动里执行应用层代码之KeUserModeCallBack(WOW64是由三个动态库wow64.dll wow64win.dll wow64cpu.dll来实现)
- Android网络传输中必用的两个加密算法:MD5 和 RSA
- mwc config.h 中文注释
- python3-day2(基本回顾)
- Exception in thread ";main"; java.net.BindException: Address already in use: JVM_Bind
- 常见编程语言对REPL支持情况小结[转]
- python中strip函数的用法
- struts升级2.3.12到2.5.13
- solrj管理索引库
- Python常见字符编码间的转换
- jQuery+存储过程实现无刷新分页(九)
- Python图形编程探索系列-02-框架设计
- 【mpvue】使用Mpvue撸一个简单的小程序