VS创建Core项目体验跨平台,部署在docker上运行(启用docker支持)

本文主要针对学习Core跨平台新手(入门级)方便学习,老手些也欢迎指教。

大家知道咋们.Net 很早就支持多平台、扩平台,很早之前的Windows Phone开发、后面的Android、IOS都可以在VS平台开发。我们知道. NET Core最大的特性之一就是跨平台,而对于跨平台,似乎大家印象中就是可以在非Windows系统上部署运行。而至于如何操作,可能就有所欠缺。那这一节我们就结合简单实例一步一步教你如何借助Docker来容器化 .NET Core应用,以完成跨平台的构建和部署。今天咋们就来聊聊core项目部署在docker上运行。

  • 什么是Docker

Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖。相较于虚拟机而言,Docker共享的是宿主机的硬件资源,使用容器来提供独立的运行环境来运行应用。虚拟机则是基于Supervisor(虚拟机管理程序)使用虚拟化技术来提供隔离的虚拟机,在虚拟机的操作系统上提供运行环境!虽然两者都提供了很好的资源隔离,但很明显Docker的虚拟化开销更低!
Docker涉及了三个核心概念:Register、Image、Container。

  1. Registry:仓库。用来存储Docker镜像,比如Docker官方的Docker Hub就是一个公开的仓库,在上面我们可以下载我们需要的镜像。
  2. Image:镜像。开发人员创建一个应用程序或服务,并将它及其依赖关系打包到一个容器镜像中。镜像是应用程序的配置及其依赖关系的静态形式。
  3. Container:容器。Container是镜像的运行实例,它是一个隔离的、资源受控的可移植的运行时环境,其中包含操作系统、需要运行的程序、运行程序的相关依赖、环境变量等。

它们三者的相互作用关系是:
当我们执行Docker pull或Docker run命令时,若本地无所需的镜像,那么将会从仓库(一般为DockerHub)下载(pull)一个镜像。Docker执行run方法得到一个容器,用户在容器里执行各种操作。Docker执行commit方法将一个容器转化为镜像。Docker利用login、push等命令将本地镜像推送(push)到仓库。其他机器或服务器上就可以使用该镜像去生成容器,进而运行相应的应用程序。

  •  启动Windows所需功能

启动hyper-v 和适用于Linux的Windows子系统功能,安装完成会需要重启计算器,如下图:

 

 

  • 安装docker desktop

 
下载地址:链接:https://pan.baidu.com/s/1tROc48CuMQbeSss6seJX7w   提取码:xgy9
安装完成,并启动(管理员身份),如下图:

 启动可能会提示失败:wsl的版本过低 可以 点击 “适用于 x64 计算机的 WSL2 Linux 内核更新包” 

可以尝试调整docker 设置:

 

 

 重启成功之后会提示尝试运行脚本: docker run -d -p 80:80 docker/getting-started

 

 

运行在power shell即可看到页面,同时docker desktop也可以看项目信息:

 

  •  新建Net Core并部署在Docker里面

 新建core项目,如下图:

 

 

 

 启动docker 系统会默认新增一个dockerfile文件

dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。

dockerfile主题内容一般分为4部分

  1. 基础镜像信息
  2. 维护者信息使用label指令
  3. 镜像操作指令
  4. 容器启动时执行指令

 

 运行项目,选择运行环境docker

 

 

系统编译会需要一点时间,运行完成浏览器的效果和docker的效果

 

 

 

 至此,一个core项目在Windows系统上面部署在docker运行已完成,下篇咋们将进一步说道core项目打包部署到Linux系统中,会有些指令操作!

 

posted @ 2021-09-02 15:37  HI_Hub_MI  阅读(644)  评论(0编辑  收藏  举报