.net core3.1项目部署到linux的docker

前言

本项目作为一个练手项目,既然.net core是为了跨平台而生,那我们就做一个项目部署在linux中,废话不多说,直接开始做我们的项目

环境准备

vs2019+.net core 3.1+linux+docker

准备一个简单.net core的API项目

使用vs2019创建个.net core的web应用程序,特别注意要勾选启用Docker支持,会帮我们创建一个Dockerfile文件(后面会用到)
在这里插入图片描述
新建个默认的api控制器,会自带get/post/put的方法
在这里插入图片描述
编译发布到文件夹
在这里插入图片描述
在这里插入图片描述

编写Dockerfile文件并发布

dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。

dockerfile主题内容一般分为4部分

基础镜像信息
维护者信息使用label指令
镜像操作指令
容器启动时执行指令

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
COPY . .
ENTRYPOINT ["dotnet", "TestAPI.dll"]

dockerfile文件指令说明:

FROM -指定所创建镜像的基础镜像
WORKDIR-配置工作目录
EXPOSE-声明镜像内服务监听的端口
COPY-复制内容到镜像
ENTRYPOINT-启动镜像的默认人口命令

编译发布
在这里插入图片描述

部署到docker中

不懂docker怎么安装到linux的朋友请参考这篇教程文章CentOS Docker安装

1、拷贝到linux服务器,这里我用的是FileZilla工具
在这里插入图片描述
2、构建镜像
在构造之前,先测试下当前dll是否有效
在这里插入图片描述

如果提示dotnet命令不可使用,请参考请参考官网配置.net core sdk 安装
查看版本,测试是否安装成功。

[root@localhost ~]# dotnet --version
3.1.402

访问正常,关闭网站,开始构建镜像:

   进入当前程序目录,输入构建命令   
[root@localhost publish]# docker build -t test-demo .

build 命令参数:

 -t  --指定镜像名称 (只能小写)
 .   --表示build上下文为当前目录,默认情况docker会使用上下文的根目录找到Dockerfile文件

3、创建并启动容器

[root@localhost publish]# docker run --name myfirstApi -d -p 5000:80 test-demo

run命令参数:

 -d --表示在后台以守护态(daemonized)形式运行容器
 -p --外部端口与内部容器端口映射。
 --name 指定容器的名称。当然可以不指定,默认会为我们创建
 最后一个参数 test-demo 就是我们刚创建的镜像名称

4、检查docker容器列表

[root@localhost publish]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                  NAMES
4064ae15311e        test-demo           "dotnet TestAPI.dll"   3 seconds ago       Up 3 seconds        0.0.0.0:5000->80/tcp   myfirstApi

测试

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello,Mr.S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值