六、.net core (.NET 6)程序部署到Docker上

简介: 使用Docker部署应用程序首先确保已经安装Docker 桌面软件,如下图:


使用Docker部署应用程序


首先确保已经安装Docker 桌面软件,如下图:

1995789-20210530151757581-2040898976.png


然后,把需要部署到Docker上面的项目,咱们先添加Docker的支持,启动项目右键 -> 添加 -> Docker支持,选择 Linux

 

1995789-20210530151812481-1841976061.png

 

1995789-20210530151822904-7884748.png

 

然后会自动生成Dockerfile文件,在里面可以看见Docker有关的配置信息。

1995789-20210530151838089-429676503.png


我们需要对Dockerfile的配置文件做一些更改:

 

1995789-20210530151855427-2105700328.png

 

然后修改dockerfile文件的属性:

1995789-20210530151912089-461460603.png

 

在启动项目的Properties下,修改launchSetting.Json启动项的配置文件,把默认启动的端口号也改成和docker默认的端口号一样的:

1995789-20210530151928486-367427497.png

 

接着,在Program下面,CreateHostBuilder里面绑定指定的端口号:

 

1995789-20210530152029783-161091870.png


然后,在Startup里面,Configure下面需要做点修改:swagger默认是写在 if (env.IsDevelopment())判断语句里面的,代表使用编译器启动,才会进来。我们把swagger有关的写到外面去,不然发布以后,可能会看不到swagger的页面:

1995789-20210530152051306-2008871613.png

 

一切准备就绪,我们准备发布一下:

项目右键,选择发布,选择发布到本地文件夹:

1995789-20210530152104432-2085772264.png


随便先自定义一个文件夹,例如我存放在D盘的Wsk_Publish下面:

1995789-20210530152223016-1602841927.png

 

对发布的一些选项进行更改,把删除现有文件的选项设为 True:

1995789-20210530152146677-1869619217.png

 

然后,右上角点击发布,发布成功即可:

 

1995789-20210530152244143-660165874.png


下面是把发布的程序部署到docker上的关键操作了。按住windows按键+X,使用管理员权限启动 power shell,然后定位到发布的程序的根目录下:

 1995789-20210530152305325-238873316.png

然后,使用   docker build -t 镜像别名(例如我起个别名,叫wesky) .

注意最后面需要加空格,然后一个点

然后就会自动下载有关的一些资源。为了看清文字,我调了下背景色,以及执行效果如下:


1995789-20210530152321370-1747688838.png

由于使用的是默认的,所以可能拉取资源会比较慢,也可以在Dockerfile配置文件把默认使用microsoft的地址改为其他的地址,这里不提供该方面的镜像地址,因为我都是用原生的。

等待一段时间,都拉取好了以后,我们打开docker客户端,可以看见镜像已经安装好了:


1995789-20210530152337130-1978441924.png


我们现在用命令来启动它: docker run -d -p 35678:35678 --name wesky wesky

命令说明,见图中说明。

1995789-20210530152349985-1494021451.png


运行成功,会显示出一串16进制字符串,代表OK了。这个时候,切换回docker客户端,可以看见程序正在运行:

 1995789-20210530152405500-1345209576.png


点击正在运行的镜像,就可以打开一些监控页面,包括日志、资源占用等信息:

 

1995789-20210530152435778-170755597.png

 

功能按钮信息,待自己去发现。

现在,我们试试在本机上打开swagger,并执行之前的api进行打印一串符号。地址是本机ip+设置的端口号:

1995789-20210530152531530-322361659.png


可以打开页面,并且测试成功,到此部署程序到docker圆满结束,撒花~~

 

备注:如果发现docker无法使用,请确认是否开启系统虚拟化,怎么开启在该系列的第一篇文章有教程。如果虚拟化已启动,就看看docker当前是linux还是windows容器。我这边使用的是linux容器,如果你是windows容器需要切换Linux,需要在电脑桌面docker图标右键,选择 switch to linux container……,如果显示的是 switch to windows container…… 就代表你已经使用的是linux容器了。

 

目录
相关文章
|
1月前
|
存储 开发框架 JSON
ASP.NET Core OData 9 正式发布
【10月更文挑战第8天】Microsoft 在 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9,此版本与 .NET 8 的 OData 库保持一致,改进了数据编码以符合 OData 规范,并放弃了对旧版 .NET Framework 的支持,仅支持 .NET 8 及更高版本。新版本引入了更快的 JSON 编写器 `System.Text.UTF8JsonWriter`,优化了内存使用和序列化速度。
|
1月前
|
运维 测试技术 Linux
【Docker项目实战】使用Docker部署lemonitor镜像站点列表程序
【10月更文挑战第1天】使用Docker部署lemonitor镜像站点列表程序
30 0
【Docker项目实战】使用Docker部署lemonitor镜像站点列表程序
|
2月前
|
jenkins 持续交付 Docker
docker之自定义制作镜像(python程序)
docker之自定义制作镜像(python程序)
|
2月前
|
开发框架 监控 前端开发
在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
【9月更文挑战第27天】操作筛选器是ASP.NET Core MVC和Web API中的一种过滤器,可在操作方法执行前后运行代码,适用于日志记录、性能监控和验证等场景。通过实现`IActionFilter`接口的`OnActionExecuting`和`OnActionExecuted`方法,可以统一处理日志、验证及异常。创建并注册自定义筛选器类,能提升代码的可维护性和复用性。
|
2月前
|
开发框架 .NET 中间件
ASP.NET Core Web 开发浅谈
本文介绍ASP.NET Core,一个轻量级、开源的跨平台框架,专为构建高性能Web应用设计。通过简单步骤,你将学会创建首个Web应用。文章还深入探讨了路由配置、依赖注入及安全性配置等常见问题,并提供了实用示例代码以助于理解与避免错误,帮助开发者更好地掌握ASP.NET Core的核心概念。
96 3
|
1月前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
1月前
|
XML 存储 安全
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
60 0
|
1月前
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
39 0
|
1月前
|
监控 安全 API
最完美的扩展Docker + .NET API:简化部署和扩展
最完美的扩展Docker + .NET API:简化部署和扩展
74 0
|
3月前
|
运维 Java Devops
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。