ASP.NET Core 的 Docker 映像创建

本教程演示如何在 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 
  • 在浏览器中转到 http://localhost: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 映像。
  • 在浏览器中转到 http://localhost:5000 以测试应用。

在 Windows 容器中运行

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

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

  • 运行以下命令以在 Docker 中生成并运行示例:
  • docker build -t aspnetapp .
    docker run -it --rm --name aspnetcore_sample aspnetapp 
  • 对于 Windows 容器,你需要容器的 IP 地址(浏览到 http://localhost: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
      
  • 将容器 IPv4 地址(例如,172.29.245.43)复制并粘贴到浏览器地址栏以测试应用。

手动生成和部署

参考官方文档吧:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-3.1#download-the-sample-app

这里记录一下我遇到的问题:

Unable to load the service index for source https://api.nuget.org/v3/index.json

具体原因是:docker builder和 run aspnet core 项目时应该使用不同的sdk包。 而我  build 和  runtime 都使用了相同的 mcr.microsoft.com/dotnet/core/sdk:3.0 。

其他运行时镜像可以在以下网址的链接中打开:https://github.com/dotnet/dotnet-docker 链接,在ReadME.md文件中查看。这是微软官方提供的sdk和runtime镜像包。

Featured Repos

这里aspnet core 3.0 应用 发布到docker 基本完成。

本文参考微软官方文档:

1.ASP.NET Core 入门

2.Docker:ASP.NET Core 的 Docker 映像

3.下载 ASP.NET SDK和 ASP.NET CORE Runtime

4.示例 asp.net core 代码

ASP.NET Core 的 Docker 映像

原文地址:https://www.cnblogs.com/davies/p/12112558.html

时间: 2024-10-06 09:32:46

ASP.NET Core 的 Docker 映像创建的相关文章

在windows上安装ASP.NET Core 的 Docker 映像

技术参考: https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-2.2 https://docs.docker.com/docker-for-windows/install/ 系统要求Windows 10 64位:专业版,企业版或教育版(内部版本15063或更高版本).必须启用Hyper-V和Containers Windows

基于Microsoft Azure、ASP.NET Core和Docker的博客系统

欢迎阅读daxnet的新博客:一个基于Microsoft Azure.ASP.NET Core和Docker的博客系统 2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网")个人空间发布过一些与编程和开发相关的文章.从入行到现在,我至始至终乐于与网友分享自己的所学所得,希望会有更多的同我一样的业内朋友能够在事业上取得成功,也算是为我们的软件事业贡献自己的一份力

ASP.NET Core开发Docker部署

ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细了解一下Docker的用途,以及真实的应用场景. Docker源于PaaS,PaaS的应用场景即是Docker的应用场景. Platform as a Service: 平台即服务, 是面向软件开发者的服务, 云计算平台提供硬件, OS, 编程语言, 开发库, 部署工具, 帮助软件开发者更快的开发软

ASP.NET Core开发-Docker部署运行

ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细了解一下Docker的用途,以及真实的应用场景. Docker源于PaaS,PaaS的应用场景即是Docker的应用场景. Platform as a Service: 平台即服务, 是面向软件开发者的服务, 云计算平台提供硬件, OS, 编程语言, 开发库, 部署工具, 帮助软件开发者更快的开发软

.NET Core微服务之ASP.NET Core on Docker

Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Docker极简介绍 1.1 总体介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低. 简而言之> 容器是一个打包了应用服务的环境,它是一

ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)

原文:ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识) 前言 在上篇文章中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序,本篇主要是怎么样为我们在 Linux 或者 macOs 中部署的 dotnet 程序创建一个守护进程,来保证我们的程序在异常或者是电脑重启的时候仍然能够正常访问. 如果你以后用准备使用 asp.net core来开发项目的话,程序并且部署到 Linux 上的话,那么此篇文章你值得收藏. 如果你觉得对你有帮助的话

[翻译] ASP.NET Core 利用 Docker、ElasticSearch、Kibana 来记录日志

原文:[翻译] ASP.NET Core 利用 Docker.ElasticSearch.Kibana 来记录日志 原文: Logging with ElasticSearch, Kibana, ASP.NET Core and Docker 一步一步指导您使用 ElasticSearch, Kibana, ASP.NET Core 2.1 和 Docker 来记录日志 在本教程中,我将向您展示如何启动和运行 ElasticSearch,Kibana 和 ASP.NET Core 2.1 在开始

【ASP.NET Core】运行原理(1):创建WebHost

本系列将分析ASP.NET Core运行原理 [ASP.NET Core]运行原理[1]:创建WebHost [ASP.NET Core]运行原理[2]:启动WebHost [ASP.NET Core]运行原理[3]:认证 本节将分析WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().Build();代码. 源代码参考.NET Core 2.0.0 WebHostBuilder WebHost Kestrel 问题概要 Hostin

一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统

原文地址: http://www.cnblogs.com/daxnet/p/6139317.html 2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些与编程和开发相关的文章.从入行到现在,我至始至终乐于与网友分享自己的所学所得,希望会有更多的同我一样的业内朋友能够在事业上取得成功,也算是为我们的软件事业贡献自己的一份力量吧,这也是我在博客园建博客