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

2023-09-18 15:32:36

先期工作

1、本地首先安装 Docker Desktop

2、本地装linux in windows

3、生成镜像

后期工作

1、云服务器部署

生成镜像方法

1、生成Dockerfile配置文件

开发工具visual studio 2022

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

继续选linux

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

#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.
#使用“小型”仅运行时基础映像开始一个阶段,将其称为“基础”,以供参考
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
# 在映像中创建 /app 目录 。
EXPOSE 80
# 公开端口 8070 。


#使用“大型”映像开始用于生成/发布的新阶段。将其称为“生成” ,以供参考。
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
#在映像中创建目录 /src 。
WORKDIR /src

#复制引用的 .csproj 项目文件,以便之后能够还原包 。
COPY ["WebAdmin/WebAdmin.csproj", "WebAdmin/"]
COPY ["APPService/ServiceWeb.csproj", "APPService/"]
COPY ["BaseClass/Utils_Base.csproj", "BaseClass/"]
COPY ["IotDeviceToolHepler/IotDeviceToolHepler.csproj", "IotDeviceToolHepler/"]
COPY ["Models/Models.csproj", "Models/"]
COPY ["DBUtility/Utils_ORM.csproj", "DBUtility/"]
COPY ["Utils_Redis/Utils_Cache.csproj", "Utils_Redis/"]
#还原项目和引用项目的包 。
RUN dotnet restore "WebAdmin/WebAdmin.csproj"
COPY . .
#将解决方案的所有目录树(.dockerignore 文件中包含的文件/目录除外)复制到映像中的 /src/项目 目录 。
WORKDIR "/src/WebAdmin"
#生成项目(和其他项目依赖项)并输出到映像中的 /app/build 目录 。
RUN dotnet build "WebAdmin.csproj" -c Release -o /app/build


#开始一个从“生成”继续的新阶段。将它称为“发布” 以进行引用。
FROM build AS publish
# 发布项目(和依赖项)并输出到映像中的 /app/publish 目录 。
RUN dotnet publish "WebAdmin.csproj" -c Release -o /app/publish /p:UseAppHost=false

# 开始一个从“基础”继续的新阶段,并将其称为“最终”
FROM base AS final
#将当前目录更改为 /app
WORKDIR /app
#将 /app 目录从阶段“发布”复制到当前目录
COPY --from=publish /app/publish .
#定义启动容器时要运行的命令
ENTRYPOINT ["dotnet", "WebAdmin.dll"]
#如果想传参,可以ENTRYPOINT ["dotnet", "WebAdmin.dll","product"]

2、生成镜像

打开window的cmd执行指令

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

如图,生成镜像成功

查看镜像

3、运行镜像

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

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

 如果想传参可以

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镜像,并运行到容器即可

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

更多推荐

python小程序 图书馆图书借阅借还管理系统 mbc21

为设计一个安全便捷,并且使借阅者更好获取本图书借还信息,本文主要有安全、简洁为理念,实现借阅者快捷寻找图书借还信息,从而解决图书借还信息复杂难辨的问题。该系统以django架构技术为基础,采用python语言和MySQL数据库进行开发设计,通过对图书借还管理流程的分析,分析了其功能性和非功能性需求,设计了基于微信小程序

设计模式:桥接模式

目录组成部分代码实现优缺点总结桥接模式是一种软件设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。该模式通过创建一个桥接接口,将抽象类和实现类连接起来,从而使它们可以独立地进行修改和扩展。桥接模式可以提高系统的灵活性和可扩展性,同时也有助于简化系统的设计。组成部分桥接模式的各个组成部分包括:抽象部分(Ab

有了Spring为什么还需要SpringBoot呢

目录一、Spring缺点分析二、什么是SpringBoot三、SpringBoot的核心功能3.1起步依赖3.2自动装配一、Spring缺点分析1.配置文件和依赖太多了!!!spring是一个非常优秀的轻量级框架,以IOC(控制反转)和AOP(面向切面)为思想内核,极大简化了JAVA企业级项目的开发。虽然Spring的

docker - 分享

1.docker介绍:Docker是一种虚拟化技术,它允许你在一台机器上运行多个应用程序,每个应用程序都运行在一个独立的虚拟器中,互相之间不会干扰。这些容器使用了操作系统级别的虚拟化技术,课可以在同一物理机器上运行多个应用程序,同时每个容器又拥有自己独立的文件系统和资源管理。Docker可以让你快速地创建、部署、和复制

开心档之JavaScript 异步编程

JavaScript异步编程目录JavaScript异步编程异步的概念什么时候用异步编程回调函数实例实例实例异步AJAX实例实例异步的概念异步(Asynchronous,async)是与同步(Synchronous,sync)相对的概念。在我们学习的传统单线程编程中,程序的运行是同步的(同步不意味着所有步骤同时运行,而

云原生微服务治理 第五章 Spring Cloud Netflix 之 Ribbon

系列文章目录第一章Java线程池技术应用第二章CountDownLatch和Semaphone的应用第三章SpringCloud简介第四章SpringCloudNetflix之Eureka第四章SpringCloudNetflix之Ribbon文章目录系列文章目录@[TOC](文章目录)前言1、负载均衡1.1、服务端负

Python in Visual Studio Code 2023年9月更新

作者:CourtneyWebster-ProgramManager,PythonExtensioninVisualStudioCode排版:AlanWang我们很高兴地宣布VisualStudioCode的Python和Jupyter扩展将于2023年9月发布!此版本包括以下内容:•将Python的“Recreate”

uniapp----微信小程序 日历组件(周日历&& 月日历)【Vue3+ts+uView】

uniapp----微信小程序日历组件(周日历&&月日历)【Vue3+ts+uView】用Vue3+ts+uView来编写日历组件;存在周日历和月日历两种显示方式;高亮显示当天日期,红点渲染有数据的日期,点击显示数据1.calendar-week-mouth组件代码<template><viewclass="calen

虹科分享 | 谷歌Vertex AI平台使用Redis搭建大语言模型

文章来源:虹科云科技点此阅读原文基础模型和高性能数据层这两个基本组件始终是创建高效、可扩展语言模型应用的关键,利用Redis搭建大语言模型,能够实现高效可扩展的语义搜索、检索增强生成、LLM缓存机制、LLM记忆和持久化。有Redis加持的大语言模型可应用于文档检索、虚拟购物助手、客户服务助理等,为企业带来益处。一、语言

服务器的架构有哪些

服务器的架构有哪些1、单体架构软件设计经典的3层模型是表现层,业务逻辑层,数据访问层。典型的单体架构就是将所有的业务场景的表现层,业务逻辑层,数据访问层放在一个工程中最终经过编译,打包,部署在一台服务器上。2、垂直架构垂直架构是将一个大项目,按照业务场景纵向拆分为互不相干的单体架构的项目。3、前后端分离前后端分离是横向

近年来国内室内定位领域硕士论文选题的现状与趋势

目录一、前言二、选题的目的和意义三、选题现状分析四、选题趋势分析一、前言本博文采用了图表统计法分析了近5年来100余篇高被引室内定位领域硕士论文选题的现状,并从选题现状中得出了该领域选题的大致趋势。本文还通过分析该领域硕士毕业论文选题的现状和趋势,对未来该领域选题提出了自己的见解和展望。二、选题的目的和意义无论是大学生

热文推荐