博客
关于我
.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/

你可能感兴趣的文章
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NHibernate学习[1]
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>