博客
关于我
.Net之Docker部署详细流程
阅读量:417 次
发布时间:2019-03-06

本文共 2613 字,大约阅读时间需要 8 分钟。

Docker部署 ASP.NET Core Web API 项目完整指南

作为一名开发人员,我决定从头开始学习 Docker 在部署 ASP.NET Core Web API 项目中的应用过程。本文将详细记录我的学习过程,并分享一些实用的部署经验。


创建项目

本次事例代码是用 Visual Studio 2019 创建的 ASP.NET Core Web API 项目。目标框架是 .NET 5,无需身份验证,不配置 HTTPS(根据个人需求勾选),启动 Docker(我习惯于后期添加),启用 OpenAPI 支持(添加 Swagger 文档)。


默认配置

创建完成后,我们查看项目目录为下:

.├── Controllers│   └── UserController.cs├── Program.cs├── Startup.cs└── launchSettings.json

直接 F5 启动项目,发现直接跳转一个 API 文档页面:

http://localhost:5000/swagger

修改配置

我基于个人习惯,修改 launchSettings.json 文件,删除 IIS 配置,删除后如下所示:

{  "iisSettings": {    "windowsAuthentication": false,    "anonymousAuthentication": true,    "iisExpress": {      "applicationUrl": "http://localhost:51539",      "sslPort": 0    }  },  "$schema": "http://json.schemastore.org/launchsettings.json",  "profiles": {    "Net5ByDocker": {      "commandName": "Project",      "launchBrowser": true,      "launchUrl": "swagger",      "environmentVariables": {        "ASPNETCORE_ENVIRONMENT": "Development"      },      "dotnetRunMessages": "true",      "applicationUrl": "http://localhost:5000"    }  }}

删除默认控制器,添加新的 UserController,在其中添加默认一些方法操作,如下:

[Route("api/[controller]/[action]")][ApiController]public class UserController : ControllerBase{    public static List
userInfo = new(); [HttpGet] public IEnumerable
Get() { return userInfo; } [HttpPost] public List
Post([FromBody] string value) { if (!string.IsNullOrWhiteSpace(value)) { userInfo.Add(value); return userInfo.ToList(); } } [HttpDelete("{id}")] public List
Delete(string id) { if (!string.IsNullOrWhiteSpace(id)) { userInfo.Remove(id); return userInfo.ToList(); } }}

添加 Dockerfile

选中项目右键添加 Docker 支持,本次部署在 Windows 平台。


运行命令

在文件资源管理器打开文件:

.\Net5ByDocker\Dockerfile

在上层目录下运行 CMD 输入命令:

docker build -f .\Net5ByDocker\Dockerfile -t net5sample .

注意:部分朋友在这一步会拉取官方镜像比较慢,可以配置 Docker 加速器使用。


生成镜像

通过 Docker 客户端查看我们已经生成的镜像:

docker images

生成容器

本文通过 Terminal 软件执行命令:

docker run --name net5sampleone -d -p 8060:80 net5sample

命令简述:

  • -d:后台运行
  • --name:容器名称
  • -p:端口映射

验证项目

通过浏览器访问地址:localhost:8060/swagger

懵逼!!!这个时候不是应该出来 Swagger 文档的界面吗?难道我们部署的方式有问题?

让我们访问下项目的接口:

localhost:8060/api/user

说明我们的项目运行是正常的,仔细查看 Swagger 配置后发现,因为为了安全默认不允许发布后出来 Swagger 文档。


通过 Postman 访问

添加用户

发送 POST 请求:

http://localhost:8060/api/user

请求体:

{    "value": "张三"}

查询用户

发送 GET 请求:

http://localhost:8060/api/user

删除用户

发送 DELETE 请求:

http://localhost:8060/api/user/123

参数:

id=123

微信公众号【鹏祥】

本文通过详细的步骤介绍了 Docker 部署 .NET 项目的完整流程,并分享了在实际操作中遇到的问题及解决方法。希望对你有所帮助!

转载地址:http://oupkz.baihongyu.com/

你可能感兴趣的文章
Pandas DataFrame中删除列级的方法链接解决方案
查看>>
Pandas DataFrame中的列从浮点数输出到货币(负值)
查看>>
Pandas DataFrame中的列从浮点数输出到货币(负值)
查看>>
Pandas DataFrame多索引透视表-删除空头和轴行
查看>>
pandas DataFrame的一些操作
查看>>
Pandas Dataframe的日志文件
查看>>
Pandas df.iterrows() 并行化
查看>>
Pandas drop_duplicates 方法不适用于包含列表的数据框
查看>>
pandas groupby 和过滤器
查看>>
pandas GROUPBY+变换和多列
查看>>
pandas Groupby:创建两列的Groupby时,如何按正确的顺序对工作日进行排序?
查看>>
Pandas matplotlib 无法显示中文
查看>>
pandas PIVOT_TABLE保持索引
查看>>
Pandas Plots:周末的单独颜色,x 轴上漂亮的打印时间
查看>>
pandas to_latex() 转义数学模式
查看>>
Pandas | 频数统计很简单,但这5 种技巧你使用过吗?
查看>>
Pandas 中文官档 ~ 基础用法4
查看>>
pandas 中的 for 循环真的很糟糕吗?我什么时候应该关心?
查看>>
Pandas 中的多索引旋转
查看>>
Pandas 中的日期范围
查看>>