©
本文档使用 PHP中文网手册 发布
这个例子演示了如何 dockerize 一个 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示例。
在你的项目文件夹中创建一个Dockerfile
。
将以下文本添加到您的Dockerfile
的 Linux 或 Windows Containers 中。下面的标签是多拱形的,意思是它们将取决于 Windows 或 Dock 的容器,具体取决于在 Docker for Windows 中设置的模式。了解更多关于交换容器。
Dockerfile
假定您的应用程序叫做aspnetapp
。更改Dockerfile
为使用项目的 DLL 文件。
FROM microsoft/aspnetcore-build:2.0 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 microsoft/aspnetcore:2.0WORKDIR /app COPY --from=build-env /app/out .ENTRYPOINT ["dotnet", "aspnetapp.dll"]
为使您的构建环境尽可能小,请将.dockerignore
文件添加到项目文件夹并将以下内容复制到其中。
bin\ obj\
在命令提示符下导航到您的项目文件夹。
使用以下命令来构建和运行 Docker 镜像:
$ docker build -t aspnetapp .$ docker run -d -p 8080:80 --name myapp aspnetapp
转到 localhost:8080以在 Web 浏览器中访问您的应用程序。
如果您使用的是 Nano Windows容器 并且没有更新到 Windows Creator Update,则会出现一个影响 Windows 10 如何通过“NAT”(网络地址转换)与 Containers 进行对话的错误。您必须直接点击容器的 IP。您可以通过以下步骤获取容器的IP地址:
跑 docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" myapp
复制容器的 IP 地址并粘贴到浏览器中。(例如172.16.240.197
)
ASP.NET Core
Microsoft ASP.NET Core on Docker Hub
ASP.NET Core with Docker Tools for Visual Studio