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

一、系统环境

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文件,其内容如下,描述创建镜像过程

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["MvcMovie.csproj", ""]
RUN dotnet restore "./MvcMovie.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "MvcMovie.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MvcMovie.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
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文件如下

---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: hrsoft-web
  name: web-mvcmovie
  annotations:
    k8s.eip.work/workload: web-mvcmovie
    k8s.eip.work/displayName: web-mvcmovie
    k8s.eip.work/service: ClusterIP
    k8s.eip.work/ingress: 'true'
  labels:
    k8s.eip.work/layer: web
    k8s.eip.work/name: web-mvcmovie
spec:
  selector:
    matchLabels:
      k8s.eip.work/layer: web
      k8s.eip.work/name: web-mvcmovie
  template:
    metadata:
      labels:
        k8s.eip.work/layer: web
        k8s.eip.work/name: web-mvcmovie
    spec:
      imagePullSecrets:
        - {}
      initContainers: []
      containers:
        - image: 'zhoujy2hrsoft/mvcmovie'
          imagePullPolicy: Always
          name: web-mvcmovie
          volumeMounts: []
          resources: {}
          env: []
      volumes: []
  replicas: 1

---
apiVersion: v1
kind: Service
metadata:
  namespace: hrsoft-web
  name: web-mvcmovie
  annotations:
    k8s.eip.work/workload: web-mvcmovie
    k8s.eip.work/displayName: web-mvcmovie
  labels:
    k8s.eip.work/layer: web
    k8s.eip.work/name: web-mvcmovie
spec:
  selector:
    k8s.eip.work/layer: web
    k8s.eip.work/name: web-mvcmovie
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
      name: mawfrp
      nodePort: 0

其在Kubernetes中的运行情况如下

 

 

参考文档:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值