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

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-04-30 12:50:06
美军拟以高超音速导弹打击伊朗 系首次实战部署

美军拟以高超音速导弹打击伊朗 系首次实战部署

新华社
2026-04-30 12:15:20
你遇到过哪些惊为天人的人物?网友:启动一小时休眠一整天

你遇到过哪些惊为天人的人物?网友:启动一小时休眠一整天

夜深爱杂谈
2026-03-20 19:32:42
48岁秦昊公开患高血压,每天吃药却还吃夜宵,伊能静的做法不恰当

48岁秦昊公开患高血压,每天吃药却还吃夜宵,伊能静的做法不恰当

阿纂看事
2026-04-29 17:23:20
感谢墨菲,赵心童输球却因祸得福,球迷认清三个事实

感谢墨菲,赵心童输球却因祸得福,球迷认清三个事实

生活新鲜市
2026-04-30 00:42:54
太高调了!美军最后一批坦克运抵台岛,博主:台军甚至都没保密!

太高调了!美军最后一批坦克运抵台岛,博主:台军甚至都没保密!

阿龙聊军事
2026-04-28 18:49:31
林志玲自爆和公婆住一块,丈夫每天准时回家,自己凌晨3点未睡

林志玲自爆和公婆住一块,丈夫每天准时回家,自己凌晨3点未睡

白面书誏
2026-04-28 19:34:08
李惠利马尔地夫被海流卷走!命悬一线求生过程曝 怕丢脸拒打电话求救

李惠利马尔地夫被海流卷走!命悬一线求生过程曝 怕丢脸拒打电话求救

ETtoday星光云
2026-04-28 11:33:22
3-2!骑士赢下天王山大战,哈登里程碑,施罗德真香

3-2!骑士赢下天王山大战,哈登里程碑,施罗德真香

世界体育圈
2026-04-30 12:20:25
美专家曾放言:美军一旦向北京、上海扔下核弹,中国不会对等报复

美专家曾放言:美军一旦向北京、上海扔下核弹,中国不会对等报复

有牙的兔纸
2026-04-30 10:20:06
“民进党严选”又来了……

“民进党严选”又来了……

极目新闻
2026-04-30 07:00:17
华润资产巨亏

华润资产巨亏

地产微资讯
2026-04-30 11:00:43
森林北自曝不整容的原因:我的皮肤太薄,角质层太薄,不适合去做

森林北自曝不整容的原因:我的皮肤太薄,角质层太薄,不适合去做

韩小娱
2026-04-30 11:25:00
46岁汤唯自曝意外怀上二胎!胎儿性别已确认,女儿9岁老公已56岁

46岁汤唯自曝意外怀上二胎!胎儿性别已确认,女儿9岁老公已56岁

天天热点见闻
2026-04-30 09:48:04
马刺正奔向全民期待的宿命!全联盟球迷都盼着他们阻击雷霆

马刺正奔向全民期待的宿命!全联盟球迷都盼着他们阻击雷霆

夜白侃球
2026-04-30 11:11:16
赶在特朗普访华前,70多名美议员致信特朗普:阻止中国做这件事

赶在特朗普访华前,70多名美议员致信特朗普:阻止中国做这件事

阿器谈史
2026-04-30 12:00:32
“四大花旦”大换血:刘亦菲下桌,杨紫稳坐主桌,榜首实至名归

“四大花旦”大换血:刘亦菲下桌,杨紫稳坐主桌,榜首实至名归

地理三体说
2026-04-29 23:24:41
江西、湖南、重庆、云南公开第三轮中央生态环境保护督察整改落实情况

江西、湖南、重庆、云南公开第三轮中央生态环境保护督察整改落实情况

极目新闻
2026-04-30 10:24:09
难怪黄一鸣要起诉王思聪!思聪被曝还有一儿子,人在英国已十几岁

难怪黄一鸣要起诉王思聪!思聪被曝还有一儿子,人在英国已十几岁

可爱的巴比龙
2026-04-30 10:44:18
大逆转!骑士18记三分夺赛点:哈登23分9板拒拉胯,奇兵轰19分

大逆转!骑士18记三分夺赛点:哈登23分9板拒拉胯,奇兵轰19分

体坛小李
2026-04-30 11:01:16
2026-04-30 13:23:00
牛马科技
牛马科技
业务数码玩家.无聊的博主
5971文章数 615关注度
往期回顾 全部

科技要闻

四巨头财报齐发:AI已经不只是风口

头条要闻

"上海最通透爸爸"去世 女儿:他退休20多年这辈子不亏

头条要闻

"上海最通透爸爸"去世 女儿:他退休20多年这辈子不亏

体育要闻

骑士天王山:哈登、莫布里和……施罗德?

娱乐要闻

孙杨妈妈被曝!过往言行被扒大开眼界

财经要闻

安世之乱,闻泰帝国近黄昏?

汽车要闻

上汽一季报出炉 在低增长周期里守住基本盘

态度原创

旅游
游戏
本地
教育
亲子

旅游要闻

“五一”到巴山大峡谷 一场“巴文化”的视听盛宴已为你备好

PS第一方重磅3A《沙罗周期》正式发售!商店评分4.8

本地新闻

用青花瓷的方式,打开西溪湿地

教育要闻

第16课What to say at dinner banquets商务宴请职场形象加分表达

亲子要闻

科学长高四件套,家长别错过!

无障碍浏览 进入关怀版