阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

489次阅读
没有评论

共计 2358 个字符,预计需要花费 6 分钟才能阅读完成。

一、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", "http://*: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

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

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

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

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

这里的两个端口号分别是宿主机和容器的映射,前一个是你在外部访问的端口号,后一个是你要映射到 docker 容器中的端口号,切记和我们在 Dockerfile 中暴露出来的端口号保持一致。

PS:这里如果 docker run 失败后再次运行会提示名称已存在,可以使用以下命令来删除容器

# docker rm -f [dockername]

如果想要 docker 容器在非正常退出后自动重启,可以加上 –restart 选项,例如下面:

# docker run –name agentservice -d -p 8810:8810 agentservice-container:1.0 –restart=always

(6)验证 docker 运行效果

方式一:在宿主机验证

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

方式二:在远程客户端通过浏览器访问

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

四、Supervisor 守护进程

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

此部分主要针对于在 Linux 上的 dotnet core 应用程序,保证程序在异常或者是电脑重启的时候仍然能够正常访问。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2358字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
8015316
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...