这个教程主要是对于第一次使用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 微服务教程的更多相关文章

  1. 画张自己能理解的dotnet core 微服务图

  2. .NET Core 微服务—API网关(Ocelot) 教程 [二]

    上篇文章(.NET Core 微服务—API网关(Ocelot) 教程 [一])介绍了Ocelot 的相关介绍. 接下来就一起来看如何使用,让它运行起来. 环境准备 为了验证Ocelot 网关效果,我 ...

  3. .NET Core 微服务—API网关(Ocelot) 教程 [三]

    前言: 前一篇文章<.NET Core 微服务—API网关(Ocelot) 教程 [二]>已经让Ocelot和目录api(Api.Catalog).订单api(Api.Ordering)通 ...

  4. .NET Core微服务之ASP.NET Core on Docker

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Docker极简介绍 1.1 总体介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.D ...

  5. 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

    一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...

  6. .NET Core微服务之基于Consul实现服务治理

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Consul基础介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发 ...

  7. .NET Core微服务之基于Ocelot+Butterfly实现分布式追踪

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.什么是Tracing? 微服务的特点决定了功能模块的部署是分布式的,以往在单应用环境下,所有的业务都在同一个服务器上,如果服务器出现错 ...

  8. .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...

  9. ASP.NET Core 微服务初探[1]:服务发现之Consul

    ASP.NET Core 微服务初探[1]:服务发现之Consul   在传统单体架构中,由于应用动态性不强,不会频繁的更新和发布,也不会进行自动伸缩,我们通常将所有的服务地址都直接写在项目的配置文件 ...

随机推荐

  1. 已管理员身份从cmd框进入mysql,及常用的简单操作!

    在命令框中操作mysql已管理员的身份进入操作权限较高,已普通用户进入cmd框也可对mysql进行操作,不过一般建议用管理员身份进入. 1.启动MYSQL Notifier 2.已管理员身份进入cmd ...

  2. C#中使用Bogus创建模拟数据

    原文:CREATING SAMPLE DATA FOR C# 作者:Bruno Sonnino 译文:C#中使用Bogus创建模拟数据 译者: Lamond Lu 背景 在我每次写技术类博文的时候,经 ...

  3. 【JVM虚拟机】(5)---深入理解JVM-Class中常量池

    深入理解Class---常量池 一.概念 1.jvm生命周期 启动:当启动一个java程序时,一个jvm实例就诞生了,任何一个拥有main方法的class都可以作为jvm实例运行的起点. 运行:mai ...

  4. TensorFlow从1到2(二)续讲从锅炉工到AI专家

    图片样本可视化 原文第四篇中,我们介绍了官方的入门案例MNIST,功能是识别手写的数字0-9.这是一个非常基础的TensorFlow应用,地位相当于通常语言学习的"Hello World!& ...

  5. 【Python3爬虫】常见反爬虫措施及解决办法(三)

    上一篇博客的末尾说到全网代理IP的端口号是经过加密混淆的,而这一篇博客就将告诉你如何破解!如果觉得有用的话,不妨点个推荐哦~ 一.全网代理IP的JS混淆 首先进入全网代理IP,打开开发者工具,点击查看 ...

  6. Named Volume 在 MySQL 数据持久化上的基本应用

    原文作者:春哥 初识春哥时,春哥是美术设计大咖.后不久,创业并致力于游戏开发,已有3年.从Unity3D到IOS(Swift)开发,从前端开发到后端以及容器技术,从设计开发测试到产品经理以及CEO,已 ...

  7. ASP .NET SignalR起步

    在网站开发中,时常需要使用消息推送功能,http协议是无状态连接,我们需要一个类似桌面程序中socket保持服务器和客户端连接的技术.signalr就是这样一个技术,他能保持网站页面和服务器的一个长连 ...

  8. Java-每日编程练习题①

    1.输出打印一个九九乘法表 代码如下,很简单的一个for的嵌套循环即可实现 /** * 输出9*9口诀. * * @author ChenZX * */ public class Test01 { p ...

  9. Ntaub表单开发入门系列 (一)

    此系列文章通过虚构场景介绍Ntaub表格开发流程.示例假设某公司人力部门要制定招聘计划,要求各部门按月提交招聘需求,招聘需求需经人力总监和公司总经理审批. 软件可以从http://www.ntaub. ...

  10. SQL执行WebService

    写了一个钉钉发送消息的类, 要发送用友等审核单据信息, 模式: 钉钉发消息功能在webservice中, 用友消息列表中有新消息时,采用触发器执行webservice. 在测试中 ,功能正常 ,但将在 ...