当前位置:首页 > Web开发 > 正文

ASP.NET Core 的 Docker 映像创建

2024-03-31 Web开发

本教程演示如何在 Docker 容器中运行 ASP.NET Core 应用

具体步骤参考文末官方文档:ASP.NET Core 的 Docker 映像,本文只记录我发布过程中遇到的一些问题。

系统要求

1.操作系统:我的是Windows10(家庭版),这里需要升级到windows10专业版,或者企业版。具体怎么升级你们懂的(万能淘宝买吧)。升级后重启电脑。

2.下载安装 Docker For Desktop,下载地址:https://www.runoob.com/docker/windows-docker-install.html。

   主要是开启电脑的Hyper-V功能。然后点击安装docker for desktop 安装包。查看电脑是否已开启虚拟化,可在任务管理器中查看,选择【性能】选项卡,在右下角【虚拟化】中查看。具体如下图。

技术图片

3. 运行系统安装开发必要软件和aspnet core sdk 、aspnet runtime 运行时捆绑包。 

下载安装网址 :Build apps - SDK 和  Run apps - Runtime 

  参考文档:ASP.NET Core 入门   https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcore-3.1&tabs=windows

下载示例应用

下载地址: https://github.com/dotnet/dotnet-docker 。可以用git下,也可以直接下载个压缩包。

本地运行应用

导航到下载文档中以下文件夹目录: dotnet-docker/samples/aspnetapp/aspnetapp 。

运行以下命令以本地生成并运行应用(在命令行cmd中运行,或者Windows Powershell命令行运行以下命令):  

dotnet run 

在浏览器中转到 :5000 以测试应用。

在命令提示符处按 Ctrl+C 以停止应用。

在 Linux 容器中运行

在 Docker 客户端中,,切换到 Linux 容器。

导航到 dotnet-docker/samples/aspnetapp 下的 Dockerfile 文件夹。

运行以下命令以在 Docker 中生成并运行示例:

docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp

build 命令参数:

将映像命名为 aspnetapp。

在当前文件夹(末尾的句点)中查找 Dockerfile。

运行命令参数:

分配伪 TTY,即使未附加也使其保持打开状态。 (与 --interactive --tty 的效果相同。)

容器在退出时自动删除。

将本地计算机上的端口 5000 映射到容器中的端口 80。

将容器命名为 aspnetcore_sample。

指定 aspnetapp 映像。

在浏览器中转到 :5000 以测试应用。

在 Windows 容器中运行

在 Docker 客户端中,切换到 Windows 容器。

导航到 dotnet-docker/samples/aspnetapp 下的 docker 文件文件夹。

运行以下命令以在 Docker 中生成并运行示例:

docker build -t aspnetapp . docker run -it --rm --name aspnetcore_sample aspnetapp 

对于 Windows 容器,你需要容器的 IP 地址(浏览到 :5000 不起作用):

打开另一个命令提示符。

运行 docker ps 以查看正在运行的容器。 验证其中是否包含“aspnetcore_sample”容器。

运行 docker exec aspnetcore_sample ipconfig 以显示容器的 IP 地址。 该命令的输出如以下示例所示:

Ethernet adapter Ethernet:

Connection-specific DNS Suffix . : contoso.com Link-local IPv6 Address . . . . . : fe80::1967:6598:124:cfa3%4 IPv4 Address. . . . . . . . . . . : 172.29.245.43 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.29.240.1

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32829.html