专栏首页Vincent-yuandotnet core 微服务教程

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-datalvm2两个包。

 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 3000:80 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安装相关

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在windows 7 上使用docker

    但是我们可以通过安装docker toolbox来实现在windows7上使用docker.

    Vincent-yuan
  • java之spring mvc之初始spring mvc

    Vincent-yuan
  • 竖式问题

    找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。

    Vincent-yuan
  • 内网穿透 TCP打洞 【c语言实现】

    上篇文章中做了UDP打洞,这篇当然就会是TCP打洞了,两个处于不同内网的两台机器如何通过TCP/IP协议进行链接通讯呢?这其实跟UDP打洞差不多,基本步骤是这个...

    战神伽罗
  • Linux VXLAN

    VXLAN是Virtual eXtensible Local Area Network的缩写,RFC 7348的标题“A Framework for Overl...

    CloudDeveloper
  • 云时代的研发环境:实施路径

    在云计算的时代大背景下,我们推荐采用研发技术栈管理平台来集中管理组织中的技术栈,允许基于一个技术栈创建开发测试PaaS和生产PaaS两个PaaS服务,从而支撑开...

    云加社区
  • 美团命名服务的挑战与演进

    命名服务主要解决微服务拆分后带来的服务发现、路由隔离等需求,是服务治理的基石。美团命名服务(以下简称MNS)作为服务治理体系OCTO的核心模块,目前承载美团上万...

    美团技术团队
  • 鸡兔同笼

    已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。

    书童小二
  • 数据库时间类型数据的处理

    有关时间类型数据的处理其实一直都是一个很让人不爽的地方,在数据库中的存储时间类型默认使用的是 UTC 时间,比我们东八区晚了八个小时,直接使用 UTC 时间显示...

    凌虚
  • 吞了1000瓶老干妈的南山头铁鹅,Python制作千图成像(附上源代码和应用程序)

    最近的瓜可谓真有意思,南山头铁鹅也默默吞下下了1000瓶老干妈。此时用这张1000张老干妈辣椒酱图片组成的企鹅来表达最适合不过了

    行哥玩Python

扫码关注云+社区

领取腾讯云代金券