dotnet core 微服务教程
这个教程主要是对于第一次使用dotnet core开发的同学。
运行环境是在centos 7 ,
使用了docker容器。
即这是一篇运行在linux的docker容器上的微服务的简单应用。
一. 安装.NET SDK
安装.NET之前,先安装一些依赖,运行下面的命令
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
安装成功后,再安装.NET SDK
sudo yum update //对整个系统升级
sudo yum install dotnet-sdk-2.2 //安装.net sdk
检验下是否安装成功
dotnet
二.创建服务
运行下面的命令
dotnet new webapi -o myMicroservice --no-https
cd myMicroservice
dotnet会创建一个webapi类型的应用。
-o :表示会创建一个名字为myMicroservice的目录
--no-https :表示这个应用运行的时候不需要https证书,这是为了部署时方便
cd myMicroservice:表示进入到这个新创建的目录
上面的命令运行以后会生成一些文件,这里对部分文件进行讲解:
myMicroservice.csproj:定义了这个应用引用 的一些 libraries
Startup.cs:包含所有的setting和应用启动时的配置文件
Controllers/ValuesController.cs:是一个简单的api
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
}
三.运行服务
dotnet run
输入:http://localhost:5000/api/Values 浏览效果

四.安装Docker
这里得说下,我这个安装的有点曲折,本来准本在win7上直接装windows版的,后来发现得win10才行,没办法,装了个Vmware虚拟机,又想着虚拟机都装了,干脆装个linux吧,然后就下了Centos,然后发现中间使用的时候网络有问题,又各种搜,最后把虚拟机的网络设置设置成了桥接,网络能用了,因为下面有用到y um命令,所以必须保证网络可用。
这里先把网址给出来,有需要的同学可以看下官网的安装说明(有3中方式,这里只介绍一种yum方式):docker的Centos安装
1.首先安装一些必要的包。yum-utils是用来提供yum-config-manager工具的,devicemapper驱动依赖的是device-mapper-persistent-data 和 lvm2两个包。
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
2.安装稳定的库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3.列出库中可用的docker版本,选择版本安装
yum list docker-ce
4.安装指定的版本。
sudo yum install docker-ce
5.启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
6.检验是否安装成功
docker --version
五.添加Docker元数据(Docker metadata)
想要让docker镜像(docker image)运行,你需要一个Dockerfile文件。这个文件中包含怎么把应用打包成镜像的说明。
1.进入应用目录
cd myMicroservice
2.新增一个Dockerfile
echo . > Dockerfile
把下面的内容复制到里面
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY myMicroservice.csproj myMicroservice/
RUN dotnet restore myMicroservice/myMicroservice.csproj
WORKDIR /src/myMicroservice
COPY . .
RUN dotnet build myMicroservice.csproj -c Release -o /app FROM build AS publish
RUN dotnet publish myMicroservice.csproj -c Release -o /app FROM base AS final
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "myMicroservice.dll"]
六.创建一个Docker镜像
docker build -t mymicroservice .
docker build命令使用Dockerfile中的信息建立一个docker镜像
-t mymicroservice:把镜像命名为 mymicroservice
. :表示Dockerfile在当前目录
列出可用的镜像
docker image ls
七. 运行Docker镜像
执行下面的命令
docker run -it --rm -p : mymicroservice
访问下面的网址:http://localhost:3000/api/values

好了,结束。
以上操作经过验证,如果有问题可以参考网址如下:
https://dotnet.microsoft.com/learn/web/aspnet-microservice-tutorial/run-docker 微软microservice教程
https://docs.docker.com/install/linux/docker-ce/centos/ docker安装教程
https://www.cnblogs.com/yufeng218/p/8370670.html docker安装相关
dotnet core 微服务教程的更多相关文章
- 画张自己能理解的dotnet core 微服务图
- .NET Core 微服务—API网关(Ocelot) 教程 [二]
上篇文章(.NET Core 微服务—API网关(Ocelot) 教程 [一])介绍了Ocelot 的相关介绍. 接下来就一起来看如何使用,让它运行起来. 环境准备 为了验证Ocelot 网关效果,我 ...
- .NET Core 微服务—API网关(Ocelot) 教程 [三]
前言: 前一篇文章<.NET Core 微服务—API网关(Ocelot) 教程 [二]>已经让Ocelot和目录api(Api.Catalog).订单api(Api.Ordering)通 ...
- .NET Core微服务之ASP.NET Core on Docker
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Docker极简介绍 1.1 总体介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.D ...
- 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)
一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...
- .NET Core微服务之基于Consul实现服务治理
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Consul基础介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发 ...
- .NET Core微服务之基于Ocelot+Butterfly实现分布式追踪
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.什么是Tracing? 微服务的特点决定了功能模块的部署是分布式的,以往在单应用环境下,所有的业务都在同一个服务器上,如果服务器出现错 ...
- .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...
- ASP.NET Core 微服务初探[1]:服务发现之Consul
ASP.NET Core 微服务初探[1]:服务发现之Consul 在传统单体架构中,由于应用动态性不强,不会频繁的更新和发布,也不会进行自动伸缩,我们通常将所有的服务地址都直接写在项目的配置文件 ...
随机推荐
- jdk源码剖析四:JDK1.7升级1.8 HashMap原理的变化
一.hashMap数据结构 如上图所示,JDK7之前hashmap又叫散列链表:基于一个数组以及多个链表的实现,hash值冲突的时候,就将对应节点以链表的形式存储. JDK8中,当同一个hash值(T ...
- STM32基于固件库新建MDK工程模板(精简版)
上个博文理论讲解的东西太多,太复杂,这里把所有步骤全部贴出 1.新建一个工程文件夹LED 2.LED文件夹下建立如下文件夹 3.Project –>New Uvision Project 到US ...
- Sublime Text3插件安装(经典)
今天我去听数学建模的培训,感觉很有意思,可是我没有报名(QAQ),没有参加培训的报名,不过幸好没有开始选拔比赛 所以我决定学习数学建模方面的知识,要好好学习了! 希望我未来的学弟学妹们!(不要像我这样 ...
- appium+python+eclipse 自动化测试框架构建!
经过几天的慢慢研究,现将所需用的自动化框架进行了构建,在后期的代码编写中,直接在框架中套用编写对应的module.case等即可,以此来简化测试方式,提高代码的编写效率与规范 基本的架构设计流程图,如 ...
- 教你如何使用Java手写一个基于链表的队列
在上一篇博客[教你如何使用Java手写一个基于数组的队列]中已经介绍了队列,以及Java语言中对队列的实现,对队列不是很了解的可以我上一篇文章.那么,现在就直接进入主题吧. 这篇博客主要讲解的是如何使 ...
- redis与CPU、内存
任何一个后端应用,包括代码都要考虑对于CPU和内存的影响.redis本质上类似于nodejs,单进程.单线程,事件驱动,但不同的是redis是CPU密集型的.这里列出了redis与内存CPU的相关考虑 ...
- eShopOnContainers 知多少[5]:EventBus With RabbitMQ
1. 引言 事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉.事件总线是对发布-订阅模式的一种实现.它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需 ...
- asp.net core系列 55 IS4使用Identity密码保护API
一.概述 OAuth 2.0资源(web api)所有者密码授权,允许客户端(Client项目)向令牌服务(IdentityServer项目)发送用户名和密码,并获取代表该用户的访问令牌.在官方文档中 ...
- Java进阶篇设计模式之七 ----- 享元模式和代理模式
前言 在上一篇中我们学习了结构型模式的组合模式和过滤器模式.本篇则来学习下结构型模式最后的两个模式, 享元模式和代理模式. 享元模式 简介 享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能 ...
- Unity C#笔记 容器类
记录一下Unity C#常用的容器,方便写脚本时忘了容器类来查下 (- -||) 动态数组 List<T> using System.Collections.Generic; //泛型容器 ...