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

你可能感兴趣的文章
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO三大组件基础知识
查看>>
NIO与零拷贝和AIO
查看>>
NIO同步网络编程
查看>>
NIO基于UDP协议的网络编程
查看>>
NIO笔记---上
查看>>
NIO蔚来 面试——IP地址你了解多少?
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
NISP国家信息安全水平考试,收藏这一篇就够了
查看>>
NIS服务器的配置过程
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NiuShop开源商城系统 SQL注入漏洞复现
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLog类库使用探索——详解配置
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>