通过GitLab CI 自动部署.netcore api到Docker(一)在Docker 容中运行.net core API

点击上方“dotNET名人堂”,选择“”

用学习的姿态,步入工作的状态

为什么要写这个?

在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效、稳定、可扩展,有时候还不得不考虑成本的问题。我希望能找到比较完整的开源解决方案来解决持续集成、监控报警、以及扩容和高可用性的问题。是学习和探索的过程分享给大家,也欢迎同行的人交流。

先来一个三步曲,我们将完成通过GitLab CI 自动部署 net core web api 到Docker 容器的一个示例。这是第一步,通过此文您将了解如何将net core web api 运行在Docker容器中。

  1. 在Docker 容中运行Asp.net Core web API

  2. 用Docker 5分钟搭一套Gitlab 环境

  3. 用GitLab CI 完成 .Net Core API 的自动部署 

以上所有示例将在Mac中完成。

640?wx_fmt=jpeg

我们将对Docker进行一些初步的介绍,安装以及基本的操作;然后我们会创建一个最简单的 netcore web api 并让它在Docker中运行。

 

Docker的安装

当然Mac上的安装是非常简单的,只需要到Docker的官网上下载一个docker for mac的安装包就可以了。安装完之后,就会在顶部的状态栏中看到Docker的图标。

640?wx_fmt=png

关于镜像的问题

如果不使用国内镜像的话,下载image将会非常的慢。在阿里云中可以申请一个自己的加速地址,速度是非常不错的。进入阿里云控制台-> 产品与服务-> 容器服务 下的镜像仓库控制台 可以在Docker Hub镜像站点中找到。

640?wx_fmt=jpeg

在Docker中配置镜像:

640?wx_fmt=jpeg

安装完之后可以在terminal中输入docker info 来检测是否安装正常。 

Docker的入门使用

下面介绍一些简单的Docker命令,以便从来没有实践过Docker的同学来了解我们接下来要做的事情。

640?wx_fmt=png

当我们刚开始安装完Docker之后,本地是没有任何的镜像的。永远的入门第一步,下载一个hello-world的镜像然后运行它。

640?wx_fmt=png

helloworld是镜像的名称,我们默认连接的是docker hub也就是官方提供的镜像仓库,当然我们也可以连接其它的甚至建立自己的镜像仓库。当本地没有 helloworld这个镜像的时候,Docker就会自动去下载这个镜像到本地。 

 

关于DockerFile

docker build命令在构建一个image的时候所需要的信息都在DockerFile中。比如我们接下来要运行的一个asp.net core api 的容器大概需要这样几步:

640?wx_fmt=png

安装并运行.net core web api 

在Mac上安装net core ,首先需要下载更新最新的OpenSSL 

640?wx_fmt=png

然后可以到官网下载net core 1.1 on MacOS,完成之后可以在命令行输入 dotnet --version 来检测当前的版本。

初始化项目并运行

通过3个命领我们可以完成初始化项目并运行的全过程: dotnet new|restore|run。dotnet 框架默认提供一些初始化的项目模板,可以输入dotnet new -all来查看。

640?wx_fmt=png

我们可以用 dotnet new webapi 来初始化一个与文件夹名称相同的 webapi项目,也可以在后面加 -n自定义一个项目名称。然后接着在命令行中进入项目的目录输入 dotnet restore,最后用 dotnet run来运行这个web api 项目。

640?wx_fmt=jpeg

接着就可以在本地浏览这个api:

640?wx_fmt=png

到这里我们的dotnet core web api已经运行在本地了,接下来我们就要让它运行在Docker中。

在Docker中运行dotnet core web api

上面我们已经讲过DockerFile以及一个net core web api 中应该如何配置它。我们会把它放到项目的根目录里。可以用Visual studio for mac 打开整个web api项目。

640?wx_fmt=jpeg

接下来我们要做的就是把我们这个代码构建成一个镜像。

640?wx_fmt=png

我们在terminal中进行项目的根目录,输入 docker build -t myapiimage . 

640?wx_fmt=jpeg

完成之后输入 docker images 可以查看到我们刚刚创建的镜像 

640?wx_fmt=jpeg

接下来我们就可以用 docker run 用刚刚这个镜像启动一个容器运行在host的 8080端口。

640?wx_fmt=png

这个时候我们再访问之前的api就需要通过8080端口,而此时的 api 已经是在容器中运行的。

640?wx_fmt=png

到这里我们已经完成了第一步,在Docker容器中顺利运行了我们的net core web api。后面一篇将介绍如何利用Docker快速部署一套GitLab的环境。

640?wx_fmt=jpeg

点击 【在看】与好朋友一起分享

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值