系列目录:

本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。

开源地址:https://github.com/cyq1162/Taurus.MVC

本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。

Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序下载)。

Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET Core(C#)项目集成:应用中心。

Taurus.MVC 微服务框架 入门开发教程:项目集成:3、客户端:其它编程语言项目集成:应用中心。

Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。

Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。

Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务的二次开发。

Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。

Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。

Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。

Taurus.MVC 微服务框架 入门开发教程:架构演进:1、从单应用程序简单过渡到负载均衡。

Taurus.MVC 微服务框架 入门开发教程:架构演进:2、负载均到模块拆分负载。

Taurus.MVC 微服务框架 入门开发教程:架构演进:3、模块拆分负载到多级负载均衡。

Taurus.MVC 微服务框架 入门开发教程:运行示例:https://github.com/cyq1162/Taurus.MVC.MicroService.Demo

前言:

本篇教程,演示ASP.NET Core 微服务应用程序,如何最简方式发布到Docker中部署,并运行起来。

新手两个简易概念:

1、映像:可以理解为Class,用于定义;

2、容器:可以理解为Class的实例化对象,new 多几个就开多几个容器,用于运行。

1、开发环境安装Docker Desktop。

这个网上教程很多,可以官网教程下载安装:Docker Desktop - Docker

也可以在VS添加Docker相关的程序时,按提示安装,安装成功启动后界面大概是这样的:

说明:

如果后续启动就显示Docker Desktop Stopped..,按网上说的弄注册表还不行的话。

可以尝试输入以下命令:DockerCli.exe -SwitchDaemon

2、应用程序中添加Docker支持:

接着选择运行环境:Linux。

如果项目中引用了外部目录的工程文件,会提示错误:

解决:

1、要么引用的工程放到同一目录;
2、要么只引用其打包的dll;
3、要么直接就发布后再写编绎dockfile文件执行。

这里换个单纯引用dll的项目,继续:

说明:

默认创建的Dockkfile包含了编绎和发布的内容,所以看起来多了一些。

如果自己编绎后发布后,再执行Dockerfile,可以省简到最终5行即可,文章后面有。

EXPOSE参数的重点说明:

默认Docker是一个虚拟系统,里面只运行一个ASP.NET Core应用程序,所以端口全都有,任意端口都可以。

EXPOSE是指应用程序的启动的端口,应用程序运行什么端口,这里就修改成什么端口,保持一致即可,可以任意端口,这个不影响。

实际对外访问的端口,是后续创建容器的映射端口。

3、生成映像:

系统执行Dockerfile上的命令行,并等待输出日志,提示成功后:

到Docker Desktop中可以看到映像:

4、生成容器:

1、鼠标放上去,出来可执行菜单:点击Run:

2、填写容器名称,和对外映射的端口号(这个才是最终访问的端口号):

对于Taurus.mvc 框架的微服务,可以将映射的端口号,通过环境变量传递进去:

这个在第六篇会用到:6、微服务应用程序Docker部署实现多开。
本篇关于环境变量设置可以先忽略。

在ASP.NET Core应用程序,是无法直接获取Docker的运行信息的:

经过思考,可以预先读取系统环境变量;

而环境变量,可以在创建容器的时候再设置;

这样可以通过环境变更来实现传递某些信息到应用程序;

点Run,之后就可以了。

重复此步骤,通过添加不到的端口,可以新增节点,等同于程序复制。

5、检测容易是否可正常运行:

点击在浏览器运行:

总结一:

应用程序的Docker发布运行流程,目前来说,在Window系统开发时都可以通过可视化工具完成。

当然,也可以通过命令行完成,下面看一下最简命令行的过程:

1、创建Dockerfile,如果放到发布目录下,内容可以省略为:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 //引用ASP.Net Core 6 运行环境映像
WORKDIR /app //Docker虚拟机的虚拟目录,默认即可。
EXPOSE 80 //Docker虚拟机的虚拟端口,即应用程序在虚拟机的运行端口
COPY . . //复制当前目录的应用程序,到Docker中的虚拟目录。
ENTRYPOINT ["dotnet", "RegCenter.dll"] //运行时候,启用.NET Core程序的命令。

之后即可按命令行走起:

1、cd 到发布目录。

2、docker build -t  regcenter .    //创建映射 注意有个 . 号

3、docker run -d -p 8002:80 --name=8002 regcenter   //创建容器,容器外对运行端口是8002

命令也不多。

总结二:

到此为止,仅是在开发环境走了一遍布Docker的发布和运行。

那如何放到服务端呢?

一般思路,会先找到映像文件,再直接上传到服务器。

然而,Docker不允许这做,进而生成的映射文件,都是一些乱码,本地对这些文件,暂时是不可容易见的。

要发布到服务器上,目前的方式,需要将本地的镜像推送到DockerHub中心,然后服务器端再拉到本地运行。

这个过程,下一篇文章再介绍。

Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。的更多相关文章

  1. Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  2. Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  3. Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  4. Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序下载)。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  5. Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET Core(C#)项目集成:应用中心。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  6. Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  7. Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  8. Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

  9. Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

随机推荐

  1. C# 将XML转为PDF

    XML,即可扩展标记语言文,件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性.通过将 XML 文档转换为 PDF格式,能够满足更多程序.设备对文件预览.读取或展示的需要,也更便于文 ...

  2. 编写一个kubernetes controller

    Overview 根据Kuberneter文档对Controller的描述,Controller在kubernetes中是负责协调的组件,根据设计模式可知,controller会不断的你的对象(如Po ...

  3. JS:Array

    js有五种基本数据类型:string,number,boolean,null,undefined 一种引用类型,包括:1.Object类型:2.Function类型:3.Array类型:4.RegEx ...

  4. linux-基于tensorflow2.x的手写数字识别-基于MNIST数据集

    数据集 数据集下载MNIST 首先读取数据集, 并打印相关信息 包括 图像的数量, 形状 像素的最大, 最小值 以及看一下第一张图片 path = 'MNIST/mnist.npz' with np. ...

  5. Vue回炉重造之router路由(更新中)

    安装vue-router npm i vue-router -S 配置1.创建文件夹与文件 创建一个router文件夹,在文件夹中创建两个文件,分别是router.js和routes.js文件.2.编 ...

  6. 毕设必看——Python ttkbootstrap 制作账户注册信息界面

    先来哔哔两句:(https://jq.qq.com/?_wv=1027&k=QgGWqAVF) ttkbootstrap 是一个基于 tkinter 的界面美化库,使用这个工具可以开发出类似前 ...

  7. 综合案例_文件搜索和FileFilter过滤器的原理和使用

    文件搜索 需求 : 遍历D:\aaa文件夹,及 aaa 文件夹的子文件夹并且只要.java结尾的文件 分析: 1.目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录 2.遍历目录时,获取的子文件 ...

  8. 低代码如何构建支持OAuth2.0的后端Web API

    OAuth2.0 OAuth 是一个安全协议,用于保护全球范围内大量且不断增长的Web API.它用于连接不同的网站,还支持原生应用和移动应用于云服务之间的连接,同时它也是各个领域标准协议中的安全层. ...

  9. GET 和 POST 请求的区别与安全性

    超文本传输协议( HTTP )是用于启用客户端与服务器之间的通信,其中 GET 请求和 POST 请求是则是 HTTP 方法中最为常用的两种.那么这 GET 和 POST 的区别到底是什么呢?两者是否 ...

  10. 5-15 Virtual 虚拟机

    虚拟机基本使用 Virtualbox安装流程 RockyLinux VirtualBox清华大学个版本下载路径 https://mirrors.tuna.tsinghua.edu.cn/virtual ...