六、.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容器了。

 

目录
相关文章
|
19天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
90 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
98 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
20天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
20天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
20天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
46 1
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
61 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
20天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
54 0
|
3月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
44 7
|
3月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
68 0