zoukankan      html  css  js  c++  java
  • 如何将asp.net core3.1项目部署到centos docker

    从0开始新建一个 asp.netcore webmvc项目,并将项目发布到centos系统中的docker容器里,实现方法如下:

    1.新建一个.netcore web mvc项目

    用vs2019新建一个名称为demo1.MvcOne 的.netcore web mvc项目

     点击 【下一步】 按钮

     点击 【创建】按钮

    选择WEB应用程序(模型视图控制器),点击【创建】按钮

     创建后的目录结构

     打开View/Home/Index.cshtml文件,编辑一点自定义内容

    先在本地测调试 一下,看能否跑起来,将  demo1.MvcOne设置为启动项目,按F5启动。

     2. 发布demo1.MvcOne项目

    将demo1.MvcOne发布到本地的一个文件夹。

    点击【创建配置文件】按钮

     点击【发布】按钮,发布完成后在本地发布的文件夹中添加一个Dockerfile的文本文件,此文件没有后缀

      

    编辑Dockerfile文件的内容,不要用  vs code或vs2019自动生成的Dockerfile,不好用。

    编辑Dockerfile文件的内容为:

    #添加.nencore3.1基础镜像
    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
    #容器工作目录
    WORKDIR /app
    
    #指定项webapi或mvc站点的内部启动端口,默认是80
    ENV ASPNETCORE_URLS http://+:50001
    
    #暴露docker容器端口
    EXPOSE 50001
    
    #拷贝发布目录下的所有文件到容器的工作根目录
    #COPY . . (这样写也可以)
    COPY ./ ./
    
    #容器入口点
    ENTRYPOINT ["dotnet", "demo1.MvcOne.dll"]

    3. 将发布好的文件,全部上传到centos

    将发布好的本地文件夹中的所有文件,指 G:codepublishdemo1demo1.MvcOne 目录里的所有文件,全部上传到centos的某个文件夹里面,可以用gitLab上传,或者用xftp上传。

    我这里用xftp上传来演示:

     

        4. 在centos里创建docker本地镜像

     创建docker镜像的前提条件,先要在centos上安装docker-ce,安装docker-ce的步骤请参考 centos7.6安装docker  , 

    (1) 下载.netcore 3.1基础镜像

     下载基础镜像 mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim ,.netcore3.1需要用到此基础镜像。此镜像比较大,下载需要较长时间。

     docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

    如果用源码来构建镜像,还需要下载 mcr.microsoft.com/dotnet/core/sdk:3.1-buster  镜像,用源码构建镜像的Dockerfile需要另外配置,本篇不详解。

    docker pull mcr.microsoft.com/dotnet/core/sdk:3.1-buster

    (2) 构建本地镜像

     进入 centos的demo1.MvcOne项目发布文件夹(比如 /projectpublish/demo1.MvcOne),使用docker build命令构建本地镜像。

    docker build -t demo1.mvcone .

    demo1.mvcone表示镜像名,镜像名必须小写,注意后面个点号(.),并且点号前面有个空格,表示构建镜像到当前目录。

    构建镜像成功出现以下信息:

     用docker images 命令查看镜像列表

      

    5.  创建容器

    容器是镜像的实例,创建demo1.mvcone镜像的容器

    docker run -d --name my.demo1.mvcone -p 8001:50001 -v /appdata/mvcone demo1.mvcone

    -d 后台运行容器

    --name 容器名

    -p 8001:50001  冒号前面的8001表示对象访问的端口,冒号后面的50001表示容器内部端口。

    -v 为容器设置卷路径,可随意指定卷路径,这里是在/appdata/mveone 目录下。

    最后面的demo1.mvcone 表示镜像名

    查看运行中的容器:

    docker ps

     若容器启动成功,访问my.demo1.mvcone站点的效果:

    6. 如何将本地镜像上传到docker hub

    通常在生产环境,开发的项目需要集群部署,为了让其它docker服务能快速的拉取镜像,需要将本地镜像上传到dokcer仓库,docker仓库分为官方公有仓库docker hub及私有仓库harbar,使用私有仓库harbor需要搭建harbor环境,本文不讲述,本文以上传到docker hub为例。

    (1)  添加镜像Tag

     使用Tag标记本地像镜,将本地镜像 demo1.mvcone 标记为 yyee/demo1.mvcone , yyee是我在dockerhub的帐号名,也是默认的仓库名。

    标记前后对比:

    (2) 登录docker hub

    docker login

    然后输入在docker hub注册的用户名和密码,如果还没有注册dokcer hub帐号,请先注册docker hub帐号,注册URL: https://hub.docker.com/

    (3) 上传镜像

    登录成功后,使用docker push命令上传本地镜像到docker hub仓库

    dokcer push yyee/demo1.mvcone

    上传前后对比:

  • 相关阅读:
    Vsftpd 3.0.2 正式版发布
    Putdb WebBuilder 6.5 正式版本发布
    SoaBox 1.1.6 GA 发布,SOA 模拟环境
    pynag 0.4.6 发布,Nagios配置和插件管理
    Percona Playback 0.4,MySQL 负荷回放工具
    xombrero 1.3.1 发布,微型 Web 浏览器
    Hypertable 0.9.6.4 发布,分布式数据库
    libmemcached 1.0.11 发布
    CryptoHeaven 3.7 发布,安全邮件解决方案
    Android Activity生命周期
  • 原文地址:https://www.cnblogs.com/yyee/p/12950422.html
Copyright © 2011-2022 走看看