找回密码
 会员注册
查看: 107|回复: 0

ASP.Net core 容器开发docker kubernetes部署

[复制链接]

1389

主题

5

回帖

496万

积分

管理员

积分
4962990
发表于 2024-2-29 08:41:53 | 显示全部楼层 |阅读模式

一、系统环境

windows10

Visual Studio 2019

.ASP.Net core 3.1

Docker Desktop

二、步骤

1、创建ASP.NET core新项目,Visual Studio 2019->创建新项目->ASP.NET Core  Web 应用程序->选中 启用Docker支持 ->创建

启用Docker支持后,可以选择目标平台是Linux或windows,决定生成docker镜像的基本内核。

创建方案后,可以看到包含了dockerfile文件,其内容如下,描述创建镜像过程

  1. FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
  2. WORKDIR /app
  3. EXPOSE 80
  4. EXPOSE 443
  5. FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
  6. WORKDIR /src
  7. COPY ["MvcMovie.csproj", ""]
  8. RUN dotnet restore "./MvcMovie.csproj"
  9. COPY . .
  10. WORKDIR "/src/."
  11. RUN dotnet build "MvcMovie.csproj" -c Release -o /app/build
  12. FROM build AS publish
  13. RUN dotnet publish "MvcMovie.csproj" -c Release -o /app/publish
  14. FROM base AS final
  15. WORKDIR /app
  16. COPY --from=publish /app/publish .
  17. ENTRYPOINT ["dotnet", "MvcMovie.dll"]
复制代码

2、创建镜像

编码测试完成后,可以选择 Docker 运行

Visual Studio 2019会自动生成目标镜并在本地docker中运行

3、将docker 镜像发布至hub.docker.com

在解决方案上右键->发布,根据提示输入hub.docker.com上注册的用户名和密码,设置tag标签默认为latest,然后按发布,Visual Studio会自动将镜像上传至hub.docker.com

4、使用

在Docker中使用,直接pull 就可以使用

在Kubernetes中使用需先编辑.yaml文件

一个Web MvcMovie的.yam示例l文件如下

  1. ---
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. namespace: hrsoft-web
  6. name: web-mvcmovie
  7. annotations:
  8. k8s.eip.work/workload: web-mvcmovie
  9. k8s.eip.work/displayName: web-mvcmovie
  10. k8s.eip.work/service: ClusterIP
  11. k8s.eip.work/ingress: 'true'
  12. labels:
  13. k8s.eip.work/layer: web
  14. k8s.eip.work/name: web-mvcmovie
  15. spec:
  16. selector:
  17. matchLabels:
  18. k8s.eip.work/layer: web
  19. k8s.eip.work/name: web-mvcmovie
  20. template:
  21. metadata:
  22. labels:
  23. k8s.eip.work/layer: web
  24. k8s.eip.work/name: web-mvcmovie
  25. spec:
  26. imagePullSecrets:
  27. - {}
  28. initContainers: []
  29. containers:
  30. - image: 'zhoujy2hrsoft/mvcmovie'
  31. imagePullPolicy: Always
  32. name: web-mvcmovie
  33. volumeMounts: []
  34. resources: {}
  35. env: []
  36. volumes: []
  37. replicas: 1
  38. ---
  39. apiVersion: v1
  40. kind: Service
  41. metadata:
  42. namespace: hrsoft-web
  43. name: web-mvcmovie
  44. annotations:
  45. k8s.eip.work/workload: web-mvcmovie
  46. k8s.eip.work/displayName: web-mvcmovie
  47. labels:
  48. k8s.eip.work/layer: web
  49. k8s.eip.work/name: web-mvcmovie
  50. spec:
  51. selector:
  52. k8s.eip.work/layer: web
  53. k8s.eip.work/name: web-mvcmovie
  54. type: ClusterIP
  55. ports:
  56. - port: 80
  57. targetPort: 80
  58. protocol: TCP
  59. name: mawfrp
  60. nodePort: 0
复制代码

其在Kubernetes中的运行情况如下

 

 

参考文档:

https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/?view=aspnetcore-3.1


来源:https://blog.csdn.net/zhujisoft/article/details/106160596
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?会员注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 13:06 , Processed in 3.047794 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表