网易首页 > 网易号 > 正文 申请入驻

Docker 内置容器支持 .NET 7

0
分享至

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

2022 年 9 月 14 日,Microsoft 发布了 .NET 7 Release Candidate 1,这是生产中支持的 .NET 7 的两个候选版本 (RC) 中的第一个。
.NET 7 的发布计划于 2022 年 11 月 8 日至 10 日在.NET Conf 2022上发布!在那之前,我们可以尝试这个新.NET 版本的一些新特性和改进!
在几个有趣的新功能中,我特别喜欢并想在这里强调的一个就是 docker 对 .NET 7 的内置容器支持。
这一新的 .NET 7 资源是新云原生功能之一的一部分,可帮助 .NET 进一步巩固自身作为构建云原生应用程序并在您的 Web 应用程序中实现弹性、可扩展性、效率和速度的绝佳替代方案。
让我们开始吧
对于此版本,您必须安装 Docker 和 .NET 7.0.100-rc.1.22431.12 或更高版本。此外,仅支持 Linux-x64 容器。
下面我们可以看到从头开始构建容器化的 ASP.NET 应用程序是多么简单。
# 1st step - create a new project
dotnet new mvc -n my-containerized-app
# 2nd step - move project to its directory
cd my-containerized-app
# 3rd step - add a reference to a (temporary) package that creates the container
dotnet add package Microsoft.NET.Build.Containers
# 4th step - publish your project for linux-x64
dotnet publish --os linux --arch x64 -p:PublishProfile=DefaultContainer
# 5th step - run your app using the new container
docker run -it --rm -p 5010:80 --name my-cloud-native-app my-containerized-app:1.0.0
如果您熟悉 docker 和 .NET CLI,或者已经掌握了它们,那么您可能会毫不费力地理解上述指令序列。
但是,如果您是初学者,让我们一步一步地看一下每个语句。
在第一步和第二步中,我们刚刚使用ASP.NET Core Empty模板创建了一个新的 .NET 应用程序,然后移至新的项目目录。
$ dotnet new mvc -n my-containerized-app
$ cd my-containerized-app
dotnet new: 创建新项目的命令
mvc: 设置 .NET 模板项目的参数
-n: 创建输出的选项
在第三步中,我们添加Microsoft.NET.Build.Containers了一个用于将 .NET 应用程序本地发布为容器的nuget 包。
$ dotnet add package Microsoft.NET.Build.Containers
在我们的示例中,我们使用的是空的 mvc 模板,但在您自己的项目中,您只需将这个包添加到其中即可。
查看一个my-containerized-app.csproj文件,您可以在那里看到包:
在第四步中,我们编译了应用程序。
$ dotnet publish --os linux --arch x64 - p:PublishProfile=DefaultContainer
dotnet publish: 编译应用程序的命令
--os linux和--arch: 用于指定目标操作系统 (OS) 和指定目标体系结构的选项。我们分别指定了 linux 和 x64。重要的是要记住只支持Linux-x64容器
-p: 用于设置属性
如果您docker images在控制台中输入,您会看到图像已经创建:
REPOSITORY TAG IMAGE ID CREATED SIZE
my-containerized-app 1.0.0 b65f7ee7668a 7 seconds ago 220MB
现在,在第五步也是最后一步,我们终于运行了我们的容器。
$ docker run -it -p 5010:80 --name my-cloud-native-app my-containerized-app:1.0.0
docker run: 运行的容器进程是隔离的,因为它有自己的文件系统,自己的网络,以及独立于主机的独立进程树
-it:以交互模式而不是分离模式运行容器,允许我们在容器处于运行状态时执行命令
-p 5010:80: 使用端口的定义。:
--name my-cloud-native-app:为容器设置名称,防止 docker 为其生成随机名称
my-containerized-app:1.0.0:设置我们要使用的图像,在这个例子中,:
如果一切顺利,我们将得到与下面类似的结果。
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {2b3bd45e-0cc8-4cad-a0b9-ce5593370e33} may be persisted to storage in unencrypted form.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://[::]:80
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
Content root path: /app
然后,只需在任何浏览器中访问应用程序http://localhost:5010/::

应用程序运行
结论
就是这样了。我们可以看到这个资源是多么简单,它对我们的项目有多么有用。与虚拟机不同,容器可以快速扩展和扩展,对于云原生应用程序至关重要,提供精细的可扩展性、可移植性和资源的有效使用。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
古特雷斯:人民币不能成为通行货币!话音刚落,拉夫罗夫立刻回怼

古特雷斯:人民币不能成为通行货币!话音刚落,拉夫罗夫立刻回怼

海佑讲史
2026-06-02 06:45:09
电子眼抓拍有规律!记住7点,2026开车全年不扣分不被罚真的不难

电子眼抓拍有规律!记住7点,2026开车全年不扣分不被罚真的不难

沙雕小琳琳
2026-05-31 14:51:29
赛豆汽车正式成立,首款车曝光!

赛豆汽车正式成立,首款车曝光!

电动内参
2026-06-01 23:51:46
话说“割四赔五”:家有逆子,父母遭殃、弟兄蒙羞、何以解忧?

话说“割四赔五”:家有逆子,父母遭殃、弟兄蒙羞、何以解忧?

奇思妙想生活家
2026-06-02 12:57:23
快讯!关于中美日的消息!

快讯!关于中美日的消息!

故事终将光明磊落
2026-06-02 16:53:15
夫妻性生活:不怕时间短,就怕你不会“延迟”让彼此爽

夫妻性生活:不怕时间短,就怕你不会“延迟”让彼此爽

精彩分享快乐
2026-06-02 12:00:14
离谱!中山大学一寝室月用近900度电,电费573元!学生透露:学校已删账单

离谱!中山大学一寝室月用近900度电,电费573元!学生透露:学校已删账单

辉哥说动漫
2026-06-02 18:23:33
东风导弹泄密案!间谍郭万钧一家三口,全部被处以死刑

东风导弹泄密案!间谍郭万钧一家三口,全部被处以死刑

番外行
2026-03-31 08:28:28
气温已超32度!为啥上海人顶着烈日也要排队?就为这口夏日专属“鲜味”,“吃了就觉得很爽”!

气温已超32度!为啥上海人顶着烈日也要排队?就为这口夏日专属“鲜味”,“吃了就觉得很爽”!

上海黄浦
2026-06-02 15:28:06
陈涛赢球还下课!深圳新鹏城敲定新帅,曼城集团卫星球队主帅

陈涛赢球还下课!深圳新鹏城敲定新帅,曼城集团卫星球队主帅

代古龙侃球
2026-06-02 09:56:03
武汉又一初中官宣取消火班,采取分层走班制!

武汉又一初中官宣取消火班,采取分层走班制!

华庭讲美食
2026-06-02 17:42:35
中超5队上榜全球TOP50!北京国安排第32,2升班马力压巴萨进前30

中超5队上榜全球TOP50!北京国安排第32,2升班马力压巴萨进前30

体坛鉴春秋
2026-06-02 17:25:47
比赖清德还狂!若2028年她当台湾地区领导人,解放军出手武力统台

比赖清德还狂!若2028年她当台湾地区领导人,解放军出手武力统台

阿讯说天下
2026-05-26 13:40:22
42架军机接连损毁!专家:美军严重误判

42架军机接连损毁!专家:美军严重误判

鲁中晨报
2026-06-02 09:19:02
网传上海高校教师“铁饭碗”松动:备案制编制到期可无理由不续聘

网传上海高校教师“铁饭碗”松动:备案制编制到期可无理由不续聘

番外行
2026-06-02 14:30:07
巴媒:巴西队携10吨物资赴美,每到一城都会搭建医疗保障体系

巴媒:巴西队携10吨物资赴美,每到一城都会搭建医疗保障体系

懂球帝
2026-06-02 19:56:20
42死395伤!汤山血案:妒忌我生意好,老乡竟投毒毒杀早点摊众人

42死395伤!汤山血案:妒忌我生意好,老乡竟投毒毒杀早点摊众人

莫地方
2026-06-02 00:09:06
医生发现:人患肺癌前1年,身体一般会出现7个预警信号

医生发现:人患肺癌前1年,身体一般会出现7个预警信号

牛锅巴小钒
2026-06-02 17:10:58
斯诺克榜单更新!赵心童入围,成历史第12人,新赛季冲世界第1!

斯诺克榜单更新!赵心童入围,成历史第12人,新赛季冲世界第1!

刘姚尧的文字城堡
2026-06-02 11:38:39
终于知道为什么领导那么喜欢上班了,网友曝光领导抽屉都是性用品

终于知道为什么领导那么喜欢上班了,网友曝光领导抽屉都是性用品

灯锦年
2026-06-01 00:35:03
2026-06-02 21:44:49
牛马科技
牛马科技
业务数码玩家.无聊的博主
6033文章数 616关注度
往期回顾 全部

科技要闻

烧掉千亿后,美团、阿里、京东谁先止血?

头条要闻

准新小区数百户业主自筹1750万改造外立面 系杭州首例

头条要闻

准新小区数百户业主自筹1750万改造外立面 系杭州首例

体育要闻

1米74的业余联赛替补,在英超踢中卫

娱乐要闻

奚梦瑶何猷君补办婚礼超幸福

财经要闻

智元和宇树的“暗战”愈演愈烈

汽车要闻

星途神秘新车轮廓曝光 又一款性能SUV要来了?

态度原创

亲子
教育
艺术
健康
手机

亲子要闻

六一平安出院,恰逢科室节日活动,欣欣尽兴玩耍

教育要闻

事关中考命题,南京一些老师被“关起来了”?

艺术要闻

周杰伦花 1.36 亿拍下这幅画

违规干细胞应用,暗藏致命隐患!

手机要闻

爆苹果iPhone Ultra敲定本月量产!定价破万,你真考虑好入手了?

无障碍浏览 进入关怀版