首页 > 系统相关 >Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署

时间:2023-06-06 11:06:39浏览次数:44  
标签:webapplication3 Core Asp web 部署 镜像 docker core net

运行环境

照例,先亮环境;软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境]

腾讯云

centos:7.2

cpu:1核 2G内存 1M带宽

docker:18.06.1-ce

安装docker

安装其实很简单,就不重复说了,请查看纯洁大神这篇文章

准备你的.net core web 程序

我这里新建一个空的.net core web程序用以演示,实际部署时是你的项目

创建web项目(我自己使用vs2017 ,如使用vscode的需要自己安装windows的SDK和使用dotnet命令)

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_docker

首先确保你的项目能在windows上运行

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_.net_02

修改一下运行绑定的的端口号

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_运行环境_03

添加Dockerfile

填入如下内容

  1. FROM microsoft/dotnet:2.1-aspnetcore-runtime
  2. WORKDIR /app
  3. COPY ..
  4. ENTRYPOINT ["dotnet","WebApplication3.dll"]

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_.net_04

并设置Dockerfile的属性

!

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_.net_05

ok,接下来发布

我发布到默认的 bin\Release\netcoreapp2.1\publish\ 下面,你们可以自定义目录

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_docker_06

发布完成后可看到如下文件结构

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_运行环境_07

ok,web程序已经准备好。

上传应用程序到linux

我这里使用xftp工具上传,上传目录是 /home/website/WebApplication3

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_.net_08

构建镜像

执行:

  1. cd /home/website/WebApplication3
  2. docker build -t webapplication3 .

这里是去到Dockerfile所在的目录,构建一个名字叫做webapplication3的镜像,注意build命令后面的.不可获取,这个.代表的是当前构建镜像的上下文路径;

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_.net_09

看到Successfully心情莫名愉悦,这说明镜像构建成功,我使用命令docker images 看看:

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_.net_10

启动容器

执行下面命令,启动我们刚刚构建好的webapplication3 容器

  1. docker run --name webapplication3 -d -p 5004:5004 webapplication3

这样表示容器正常启动了

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_运行环境_11

我们看看:

  1. docker ps

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_.net_12

容器正常运行,浏览器访问 http://你的服务器ip:5004

Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署_docker_13

噢耶,大功告成!



标签:webapplication3,Core,Asp,web,部署,镜像,docker,core,net
From: https://blog.51cto.com/u_4018548/6422697

相关文章

  • ELK部署中_
    ELK_8.2.0安装及部署手册目录1安装环境31.1系统环境3安装环境系统环境操作系统:CentOS7软件环境基础软件ELK所需基础服务及版本信息,如下表所示:序号软件名称软件版本备注1jdkjdk-11.0.18 2elasticsearch8.2.0 3file......
  • NET Core CLI命令小结
    dotnetrundotnetrun--urls=http://*:8080//urls指定ip和端口dotnetwatchrun//watch监听程序修改,一旦修改则重新启动dotnetwatchrun--urls=http://*:8080dotnetrun-pNETCoreCLI.csproj//一个“-”是简称的pdotnetrun--projectNETCoreCLI.csproj//两个“-”是全......
  • Jenkins+Docker 一键自动化部署项目!【转】
    本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。安装dockerdocker安装社区版本CE确保yum包更新......
  • docker desktop 安装部署及使用
    工作中没有使用过dockerdesktop,不过对docker还是比较了解的。参与的一个大数据管理平台的项目(linux环境),内部使用了docker+k8s技术,所以在测试中会经常使用docker命令来辅助查看一些大数据组件及实例的运行情况。和其他人交流的时候了解到了dockerdesktop软件,看很多公司招人的......
  • aspose word与pdf互转
    asposeword与pdf互转packagecom.example.core.mydemo.aspose;importcom.aspose.words.Document;importcom.aspose.words.License;importcom.aspose.words.SaveFormat;importjava.io.ByteArrayInputStream;importjava.io.File;importjava.io.FileOutputStream;......
  • net core+mediatr+EF实现事件触发
    参考杨中科的教程1.先添加接口usingMediatR;namespaceNetOptions.Entities;publicinterfaceIDomainEnvent{voidAddNotification(INotificationnotification);IEnumerable<INotification>GetNotifications();voidClearNotifications();}2.添加抽......
  • docker 部署xxx-job
    1拉取镜像:dockerpullxuxueli/xxl-job-admin:2.3.02创建容器:dockerrun-d--privileged-ePARAMS="--spring.datasource.url=jdbc:mysql://1.15.242.247:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC--s......
  • 手把手教你AspNetCore WebApi:Swagger(Api文档)
    前言小明已经实现“待办事项”的增删改查,并美滋滋向负责前端的小红介绍Api接口,小红很忙,暂时没有时间听小明介绍,希望小明能给个Api文档。对于码农小明来说能不写文档就尽量不要写,不过这也难不倒小明,他知道Swagger不仅可以自动生成Api文档,并还可以用Swagger进行接口测试。Swagger是什......
  • 手把手教你AspNetCore WebApi:数据验证
    前言小明最近又遇到麻烦了,小红希望对接接口传送的数据进行验证,既然是小红要求,那小明说什么都得满足呀,这还不简单嘛。传统验证[HttpPost]publicasyncTask<ActionResult<Todo>>PostTodo(Todotodo){if(string.IsNullOrEmpty(todo.Name)){returnOk("名称不......
  • 手把手教你AspNetCore WebApi:Serilog(日志)
    前言小明目前已经把“待办事项”功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的。Serilog是什么?在.NET使用日志框架第一时间会想到NLog或是Log4Net,Serilog是这几年快速崛起的Log框架之一,Serilog是以Structuredlogging为基础进行设计,透过loggingAP......