zoukankan      html  css  js  c++  java
  • Windows系统下 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 代码

     5. 园子参考文章:NET Core微服务之ASP.NET Core on Docker

    ASP.NET Core 的 Docker 映像

  • 相关阅读:
    ARTS 计划第四周
    ARTS 计划第三周周
    计划表的科学设定
    C/C++内存分配
    ARTS 计划第二周周
    jsoncpp 和 libcurl的编译与使用 vs2010
    ARTS 计划第一周
    unix中的v节点和i节点
    百度地图demo
    带有定位当前位置的百度地图web api 前端代码
  • 原文地址:https://www.cnblogs.com/davies/p/12112558.html
Copyright © 2011-2022 走看看