如何在linux上使用docker发布.net6.0的webApi项目

这篇具有很好参考价值的文章主要介绍了如何在linux上使用docker发布.net6.0的webApi项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.创建webapi项目

打开vs2022,创建一个新的webapi项目。
如何在linux上使用docker发布.net6.0的webApi项目
默认选项,一直下一步就ok。注意框架要使用.net6.0,不要选择.netframework(不支持跨平台)。
如何在linux上使用docker发布.net6.0的webApi项目
创建完后,已经生成完整的示例代码了,这个项目是可以直接运行的。这里我们在Program.cs文件中,稍作修改,在最后一行Run方法指定api的端口号,如下:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run("http://*:1040");

运行起来
如何在linux上使用docker发布.net6.0的webApi项目
在浏览器输入地址“http://localhost:1040/WeatherForecast”,结果如下:
如何在linux上使用docker发布.net6.0的webApi项目
项目运行没有问题。下一步要部署到linux上去。

2.生成Dockerfile

右键项目,选择“添加”-“Docker支持”。
如何在linux上使用docker发布.net6.0的webApi项目
选择“Linux”,确定。
如何在linux上使用docker发布.net6.0的webApi项目
在项目下会生成一个Dockerfile(没有后缀名),修改暴露的端口,内容如下:

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 1040

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

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebapiTest.dll"]

将Dockerfile复制到上一级目录(即和解决方案.sln文件同一级目录)下。

3.上传至Linux

将整个项目的源码上传至linux,这里使用PSFTP工具。打开psftp,使用命令

open 192.168.1.23

其中的ip地址是linux服务器的地址。输入用户名和密码,就可以进入了。
进入后先创建一个临时目录“temp”,用于存放MyWebapiTest项目源码。

mkdir temp

设置linux远端目录

cd temp

设置windows本地目录

lcd D:\test

D:\test是MyWebapiTest项目所在目录,上传整个文件夹MyWebapiTest。

put -r MyWebapiTest

上传完后,使用“ls”命令查看。

4.Docker部署

打开工具PuTTY,连接Linux,输入用户名、密码进入。
进入“temp/MyWebapiTest”目录。

cd temp/MyWebapiTest

使用以下命令,根据temp/MyWebapiTest下的Dockerfile文件,编译项目并创建docker镜像。

docker build -t dotnetapitest .

dotnetapitest是镜像名称,注意最后还有个“ .”
使用“docker images”查看所有镜像。
使用以下命令,创建和启动容器

docker run --name dotnetapitest -p 1040:1040 -d dotnetapitest

以上命令中,第一个dotnetapitest是容器名,第二个是镜像名。
–name 为容器指定一个名称
-p 1040:1040 指定容器暴露的端口
运行起来后,使用如下命令查看日志信息:

docker logs --tail=1000 dotnetapitest

显示如下信息,则表示webapi已经在运行了
如何在linux上使用docker发布.net6.0的webApi项目
打开浏览器,输入地址“http://192.168.1.23:1040/WeatherForecast”,和本地运行结果一致,docker部署成功。文章来源地址https://www.toymoban.com/news/detail-512924.html

到了这里,关于如何在linux上使用docker发布.net6.0的webApi项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • .Net6 WebApi + JWTBearer身份认证的简单实现

    VS2022 .Net6 WebApi using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.IdentityModel.Tokens; 在 appsettings.json 文件添加 TokenParameter.cs AppSettings.cs Program.cs ITokenService.cs 接口类 TokenService.cs 实现类 TokenController.cs 中Login()获取token的值 WeatherForecastController.cs 中的方法加上[Authorize]特性

    2024年02月15日
    浏览(36)
  • .net6 core web项目发布部署到IIS,以Windows服务的形式部署启动

    一、修改Program.cs代码,注册为 Windows Service 如果不注册builder.Host.UseWindowsService(); 安装为window服务会启动报错 安装NuGet包 Microsoft.Extensions.Hosting.WindowsServices Program.cs代码 二、发布项目 1、以文件夹形式 2、目标运行时选对应的平台(本Coder是:winx-64) 3、文件夹选项:在发布前删

    2024年02月11日
    浏览(46)
  • Linux系统上创建.NET6项目(通过命令行(CTL)方式)

    平时大家创建项目基本上都是借助开发工具创建,比如visual studio,visual studio code,今天我们在Linux系统上,通过命令行的形式创建.NET6项目。 第一个直接安装 如图所示,即.NET环境安装成功。 我们以webapi为例,演示创建项目的过程。 认识dotnet相关命令 经常会用到的命令。 认

    2024年02月03日
    浏览(43)
  • .NET6 项目使用RabbitMQ实现基于事件总线EventBus通信

    一、概念及介绍         通常通过使用事件总线实现来执行此发布/订阅系统。 事件总线可以设计为包含 API 的接口,该 API 是订阅和取消订阅事件和发布事件所需的。 它还可以包含一个或多个基于跨进程或消息通信的实现,例如支持异步通信和发布/订阅模型的消息队列或

    2024年04月28日
    浏览(53)
  • .Net6 记一次RabbitMq消息订阅/发布优化

             首先介绍一下项目情况,项目需要设备在线实时采集,最高采集频率为1次/秒,设备上传数据时,协议规定的是10条/包,服务端通过rabbitMq接收消息,并进行存储、预警、推送等进行多层处理,因为web端要求数据实时展示,且延时不得超过1分钟,因数据量较大,

    2024年01月18日
    浏览(47)
  • .NET WebApi 发布到服务器(windows)并开放端口

    目录 1.前言 2.发布前的准备 3.打包发布(交叉编译) 3.1更改生成xml文件的设置 3.2进入WebApi项目,右键发布 3.3发布设置------勾选在发布前删除现有文件 4.发送件至服务器 5.服务器安装对应环境 5.1安装IIS 5.2安装Hosting Bundle 6.发布 7.配置端口 8.各类报错 8.1    500.19 Internal Server

    2024年04月12日
    浏览(70)
  • .NET Core webapi 从零开始在IIS上面发布后端接口

    .NET core是以后.NET未来的趋势,虽然我感觉Java在web后端的主导地位10年内不会动摇,因为Java占据了先发优势。 不过C#的特点就是,简单,好用,全栈。C#语法糖很舒服,C#能写后端,桌面端,还有Unity关门大弟子支持。外挂个Vue+uniapp。可以说是全栈开发了。 对了,我最近研究了

    2024年01月18日
    浏览(39)
  • RDIFramework.NET CS敏捷开发框架 V6.0发布(支持.NET6+、Framework双引擎,全网唯一)

    全新RDIFramework.NET V6.0 CS敏捷开发框架发布,全网唯一支持.NET6+,Framework双引擎,降低开发成本,提高产品质量,提升用户体验与开发团队稳定性,做软件就选RDIFramework.NET开发框架。 RDIFramework.NET C/S敏捷开发框架 ,是我司重磅推出的基于.NET的快速信息化系统开发、整合框架,

    2024年02月15日
    浏览(40)
  • IIS发布.net6 api+微信小程序/H5真机调试接口的流程

    我们创建.net6 api程序,然后使用SqlSugar连接MySQL数据库,再使用iis发布,当然使用其他的也行。再开发一个微信小程序,手机运行小程序,手机运行H5,都可以看到数据库的数据,就是这么一个流程。 开始! 目录 第一,.net6api开发 第二,IIS发布.net6api 第三,开发微信小程序

    2024年02月16日
    浏览(46)
  • C#/.NET6项目的搭建

    目录 一.下载Visual Studio: 二.下载.NET6的SDK文件: 三:下载Visual Studio Code: 四.新建一个项目  1.根据自己的需求选择项目类型  2.项目的启动​编辑 五.创建MVC项目   1.项目结构 1.文件配置信息: 2.根目录 存储着静态文件: 3.启动项:  4.MVC三层: Controllers appsettings.json Prog

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包