如何将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

上传前后对比:

原文地址:https://www.cnblogs.com/yyee/p/12950422.html