https://blog.csdn.net/sd7o95o/article/details/80809734

 

本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序,以及修改系统之后,发布更新。本文章采用自定义的Docker文件

系统要求:

  1.服务器或本地已经安装docker

一、创建一个Asp.Net Core 2.1 Web应用(若可以熟练创建项目,可忽略此节)

注意这里没有勾选 “启动Docker支持”

二、创建Docker文件

  项目创建完成之后,在项目的根目录下,添加一个Dockerfile文件,注意文件名。

  在Dockerfile文件中,添加如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
# 添加基础镜像
FROM microsoft/dotnet:2.1-aspnetcore-runtime
#容器中系统的工作空间
WORKDIR /app
#拷贝当前文件夹下的文件到容器中系统的工作空间
COPY . /app
 
#设置Docker容器对外暴露的端口
EXPOSE 80
#容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序
#使用ENTRYPOINT ["dotnet","系统启动的dll"]
#或使用 CMD ["dotnet","系统启动的dll"]
ENTRYPOINT ["dotnet", "School.Web.dll"]

  修改Dockerfile文件属性

  

三、发布应用程序

  

  注意在发布的设置,目标运行时为可移植,我曾经设置为winX64发现运行时启动不起来的问题

四、发布应用程序到服务器上

  使用FTP或其他工具,将应用程序上传到服务器上。如,我使用FileZilla,将文件上传到/home/ubuntu/work/project/csharp/school文件夹下。

五、创建镜像

  在应用程序的目录下:/home/ubuntu/work/project/csharp/school(根据自己情况而定,也就是服务器上Dockerfile所在目录),执行生成镜像命令。

docker build -t school:1.0.0 . 

  注意镜像名称后边的 .  (school:1.0.0是标识镜像名称和版本信息)

  此时将下载Asp.Net Core 2.1-aspnetcore-runtime 基础镜像,并运行Dockerfile中的后续指令

六、创建并启动容器

docker run --name=school -d -p 8000:80 -v /home/ubuntu/work/project/csharp/school:/app school:1.0.0 

  注意此处-v,将文件挂载到服务器宿主机上,便于后续更改时,可以直接重启生效

  当成功执行之后,会输出school(容器名称),这时候可以通过 docker ps -a 查看容器是否启动正常。当容器状态显示为UP时,表示启动成功。

  在本地输入服务器IP地址+8000端口,成功看到系统正常运行了。

七、应用程序更新及发布

  项目正常启动之后,尝试修改项目的View页面或Controller,然后重新发布之后,将更新上传至服务器对应的项目文件夹(/home/ubuntu/work/project/csharp/school)。

  执行命令,使项目更新:

docker restart school

  浏览器中刷新页面查看更新

八、错误排查

  1.当启动容器是发现容器状态为Exit时,通过命令: docker logs school  查看容器启动中的错误。

  2.可对照上述过程中的各个注意点一一排查。

相关文章:

原文地址:https://www.cnblogs.com/kingkangstudy/p/9221041.html

在Docker中部署Asp.net core2.1以及修改发布的更多相关文章

  1. Docker----在Docker中部署Asp.net core2.1以及修改发布

    本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序,以及修改系统之后,发布更新.本文章采用自定义的Docker文件 系统要求: 1.服务器或本地已经安装docker 一.创建一 ...

  2. 记一次Docker中部署Asp.Net Core 3.0的踩坑过程

    最近公司打算重构目前直销报单系统到微信小程序中,目前的系统只能在PC上面使用,这两年也搞过App端,但是由于人员流动和公司架构调整最后都不了了之,只留下一堆写了一半的接口.以前的接口依然是使用Asp. ...

  3. 在 Docker 中部署 ASP.NET CORE 应用

    有了 Docker 之后, 部署起来却这间非常方便,环境不用搭了, 直接创建一个 microsoft/aspnetcore 的容器, 在本地开发好后, 把内容直接部署到容器中. 下面的命令是把本地发布 ...

  4. 在Docker中部署ASP.NET Core 2.2

    ⒈新建一个ASP.NET Core2.2 Web程序 因为Windows的Docker和Linux的Docker有所不同,本次测试采用的是Linux的Docker,因此没有勾选启用Docker支持. ...

  5. 使用docker来部署asp.net core的程序

    使用docker来部署asp.net core程序 暂不介绍docker是个什么东西?不知道的自己百度. 第一步安装docker: 我的docker是装在centos7系统上,windows上我的也用 ...

  6. 深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图

    原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Co ...

  7. 【续集】在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题

    dudu 的一篇博文:在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题 针对 IIS 部署 ASP.NET 5 应用程序的问题,在上面博文中主要采用两种方式尝试: VS2015 的 Publ ...

  8. 如何在IIS6,7中部署ASP.NET网站

    http://www.cnblogs.com/fish-li/archive/2012/02/26/2368989.html 阅读目录 开始 查看web.config文件 在IIS中创建网站 IIS6 ...

  9. docker中运行ASP.NET Core Web API

    在docker中运行ASP.NET Core Web API应用程序 本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过 ...

随机推荐

  1. WINFORM 开发模式,窗体回到默认样式方法。

    软件分为3类   客户端  网站应用  app WINFORM 主要用来只做客户端应用程序.C/S 客户端程序很重要的特点:可以操作用户电脑上的文件,执行在客户端上,电脑的配置越高执行就越流畅. 在p ...

  2. Opengl创建机器人手臂代码示例

    /*******************************************************robot.cpp*基于opengl的机械手臂示例代码*s:机械臂逆时针旋转*S:机械臂 ...

  3. Excel VBA连接MySql 数据库获取数据

    编写Excel VBA工具,连接并操作Mysql 数据库. 系统环境: OS:Win7 64位 英文版 Office 2010 32位 英文版 1.VBA连接MySql前的准备 Tools---> ...

  4. oracle数据库输入conn / as sysdba 出现ORA-01031: insufficient privileges + 忘记sys密码如何改密码

    今天忘记了oracle数据库sys用户的密码,想着直接改密码输入conn / as sysdba 出现了ORA-01031: insufficient privileges(权限不足)的错误,到处搜教 ...

  5. Java Iterable类

    查看java源代码 /* * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE ...

  6. PHP常用的服务器

    Wordpress够流行了吧,它是一个用PHP编写的强大的博客平台.使用它来架设一个博客平台相关容易,是新手建站比较方便的工具.但是要真正体会Wordpress(以下简称WP)强大,插件是不可少的东西 ...

  7. 通过ajax把json对象传入后台

    一.前台ajax部分 function icheckDelete(url){ var parms = { list : array //这是个数组 }; $.ajax({ dataType: &quo ...

  8. c++ 委托构造函数

    #include<iostream> ; using namespace std; class Cbox{ int a ; int b ; int c ; public: int g ; ...

  9. 洛谷P2900 [USACO08MAR]土地征用Land Acquisition(斜率优化)

    题意 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比如约翰并购一块3 ...

  10. t-sql read xlsx

    How to Read and Load an Excel 2007 or Excel 2010 File Without Using Import/Export Utility To read an ...