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

一、Docker极简介绍 1.1 总体介绍

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

  Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

简而言之> 容器是一个打包了应用服务的环境,它是一个轻量级的虚拟机,每一个容器由一组特定的应用和必要的依赖库组成。

  Docker和传统虚拟化之间最大的区别在于:容器是在操作系统层面上实现虚拟化,即直接复用本地主机的操作系统;而传统虚拟化则是在硬件层面实现,如VMware vShpere, Xen及Citrix等。

  

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

  

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

1.2 Docker结构

  Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

  Docker 容器通过 Docker 镜像来创建。

  容器与镜像的关系类似于面向对象编程中的对象与类。  

  Docker的架构如下图所示,Client 通过接口与Server进程通信实现容器的构建,运行和发布。Client和Server可以运行在同一台集群,也可以通过跨主机实现远程通信。

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

二、Docker的安装

  (1)准备一台Linux主机,这里以CentOS 7.2为例。当然,你也可以使用Windows,不过你得确保是Windows 10 pro版本及以上,且安装了Hyper-V等一系列的相关软件。

  (2)安装docker

  # yum install docker

  

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

  (3)启动docker服务

  # systemctl start docker.service

  

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

  (4)配置开机启动并验证

  # systemctl enable docker.service

  

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

  验证:查看docker版本信息 

  # docker version

  

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

  (5)配置docker加速器 => 原因你懂得,不设置慢死你,云服务器除外

  # vim /etc/docker/daemon.json

{

"registry-mirrors": ["https://d8b3zdiw.mirror.aliyuncs.com"]

}  

  然后重启docker服务

  # systemctl daemon-reload

  # systemctl restart docker

  (6)Hello World

  # docker run hello-world

  

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

三、ASP.NET Core on Docker配置

  (1)拉取dotnet/aspnetcore的最新镜像,这里以aspnetcore 2.0为例

  # docker pull microsoft/aspnetcore:2.0

  

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

  PS:如果要拉取最新版本(比如.net core 2.1),可以将版本号改为aspnetcore:latest

  如果你想要拉取更多microsoft的镜像,那么搜索一下把:# docker search microsoft

  

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

  拉取了不想要的镜像,那么删除一个吧,如:# docker rmi imagesID

  

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

  拉取之后,验证一下是否拉取成功了:# docker images

  

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

  (2)现在我们进入VS中为我们的一个ASP.NET Core WebAPI编辑一个Dockerfile

# 父镜像 FROM microsoft/aspnetcore:2.0 # 设置工作目录 WORKDIR /app # 复制发布文件到/app下 COPY . /app # 设置端口 EXPOSE 8810 # 使用dotnet Manulife.DNC.MSAD.NB.AgentService.dll来运行ASP.NET Core项目,注意大小写 ENTRYPOINT ["dotnet", "Manulife.CD.MSAD.NB.AgentService.dll", "--server.urls", "*:8810"]

  (3)发布这个ASP.NET Core WebAPI,并将Release文件传送到Linux服务器中(你可以选择xFTP或者WinScp等工具)

  

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

  (4)进入上图的AgentService目录中,开始打包docker镜像

  # docker build -t agentservice-container:1.0 . => 不要忘记后面还有一个点.

  

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

  此刻再次验证:# docker images

  

  (5)万里长征最后一步:运行docker

  # docker run --name agentservice -d -p 8810:8810 agentservice-container:1.0

  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ac725fa6ecdcdd88f460db52df5d8ba5.html