• ubuntu+.net6+docker 应用部署教程


    先期工作

    1、本地首先安装 Docker Desktop

    2、本地装linux in windows

    3、生成镜像

    后期工作

    1、云服务器部署

    生成镜像方法

    1、生成Dockerfile配置文件

    开发工具visual studio 2022

    如果项目已经存在,可以选中项目,右键点击->选择添加Docker支持。

    继续选linux

    项目支持docker后,会在项目下生成一个Dockerfile文件(用来构建Docker镜像的构建文件)

    1. #See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
    2. #使用“小型”仅运行时基础映像开始一个阶段,将其称为“基础”,以供参考
    3. FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
    4. WORKDIR /app
    5. # 在映像中创建 /app 目录 。
    6. EXPOSE 80
    7. # 公开端口 8070
    8. #使用“大型”映像开始用于生成/发布的新阶段。将其称为“生成” ,以供参考。
    9. FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
    10. #在映像中创建目录 /src 。
    11. WORKDIR /src
    12. #复制引用的 .csproj 项目文件,以便之后能够还原包 。
    13. COPY ["WebAdmin/WebAdmin.csproj", "WebAdmin/"]
    14. COPY ["APPService/ServiceWeb.csproj", "APPService/"]
    15. COPY ["BaseClass/Utils_Base.csproj", "BaseClass/"]
    16. COPY ["IotDeviceToolHepler/IotDeviceToolHepler.csproj", "IotDeviceToolHepler/"]
    17. COPY ["Models/Models.csproj", "Models/"]
    18. COPY ["DBUtility/Utils_ORM.csproj", "DBUtility/"]
    19. COPY ["Utils_Redis/Utils_Cache.csproj", "Utils_Redis/"]
    20. #还原项目和引用项目的包 。
    21. RUN dotnet restore "WebAdmin/WebAdmin.csproj"
    22. COPY . .
    23. #将解决方案的所有目录树(.dockerignore 文件中包含的文件/目录除外)复制到映像中的 /src/项目 目录 。
    24. WORKDIR "/src/WebAdmin"
    25. #生成项目(和其他项目依赖项)并输出到映像中的 /app/build 目录 。
    26. RUN dotnet build "WebAdmin.csproj" -c Release -o /app/build
    27. #开始一个从“生成”继续的新阶段。将它称为“发布” 以进行引用。
    28. FROM build AS publish
    29. # 发布项目(和依赖项)并输出到映像中的 /app/publish 目录 。
    30. RUN dotnet publish "WebAdmin.csproj" -c Release -o /app/publish /p:UseAppHost=false
    31. # 开始一个从“基础”继续的新阶段,并将其称为“最终”
    32. FROM base AS final
    33. #将当前目录更改为 /app
    34. WORKDIR /app
    35. #将 /app 目录从阶段“发布”复制到当前目录
    36. COPY --from=publish /app/publish .
    37. #定义启动容器时要运行的命令
    38. ENTRYPOINT ["dotnet", "WebAdmin.dll"]
    39. #如果想传参,可以ENTRYPOINT ["dotnet", "WebAdmin.dll","product"]

    2、生成镜像

    打开window的cmd执行指令

    docker build -f .\WebAdmin\Dockerfile -t webadmin .

    如图,生成镜像成功

    查看镜像

    3、运行镜像

    创建容器并运行镜像看下是否正常

    docker run -p 8011(映射外网端口):80(应用端口) webadmin
    

     如果想传参可以

    1. docker run -p 8011(映射外网端口):80(应用端口) webadmin test

    Program.cs 文件中接收参数args,用于多环境部署

     查下ip:8071是否可以访问,正常可以访问即表示成功了

    查看容器

    docker ps

     如图表示正常

    4、我们把镜像下载到硬盘,以便上传到云服务器上部署

    cmd中执行指令

    sudo docker save -o webadmin.tar webadmin

    如:

    将生成一个tar文件到F:\物联网\IotCsharp>目录中 

    把 tar文件上传到云服务器,并运行指令导入docker镜像,并运行到容器即可

    1. 导入镜像
    2. sudo docker load --input /usr/docker/webadmin.tar

  • 相关阅读:
    java版Spring Cloud+Mybatis+Oauth2+分布式+微服务+实现工程管理系统
    项目经理必看!4个万能公式,轻松搞定即兴发言!
    Hive数据仓库工具基本架构和入门部署详解
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
    EasyExcel导入/导出Excel文件
    Python初体验
    day068:字符流读、写数据,及其注意事项、flush和close方法、字符缓冲流
    HTML分类面试题
    每日一题:如何实现上拉加载,下拉刷新?
    Mockito单元测试
  • 原文地址:https://blog.csdn.net/qq_16005627/article/details/132980014