本文记录的所有东西,都是吸取别人的经验,自己实践得来,记录下来,也是为了某一天,用上的时候,能够更加的得心应手,平日的学习,都是未雨绸缪之举,但愿,这些笔记,也能帮上正在摸索的你。

第一步,下载虚拟机并安装。下载地址:http://www.zdfans.com/html/5928.html

第二步,下载CentOS7镜像,下载地址:https://www.centos.org/download/

第三步,在虚拟机中安装CentOS7,按照默认配置一直下一步即可,最后一步选择你刚下载的CentOS7的镜像文件,最后开启此虚拟机,按照提示安装完成即可。

第四步,配置CentOS7的网络

  • 进入目录:
cd /etc/sysconfig/network-srcipts
  使用vi编辑器修改ifcfg-ens33中的配置节
        BOOTPROTO=dhcp
        ONBOOT=yes
  • 重启网络服务:service network restart
 

  • 查看IP地址:
ip addr

======================华丽的分割线 ====================== 
以上内容,都可以查看相关的博客,不做具体的介绍,下面开始记录在CentOS7中部署Asp.Net Core Web站点。
 
第五步,安装docker
  • 安装需要的软件包:-y:对所有的提问都回答“yes”
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 设置yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 查看docker版本,直接安装最新的18.06.1.ce-3.el7

yum list docker-ce --showduplicates | sort -r
sudo yum install 18.06.1.ce-3.el7

  • 启动并设置为开机启动

sudo systemctl start docker
sudo systemctl enable docker
  • 查看版本号,查看是否安装成功:

docker version

参阅:https://www.cnblogs.com/yufeng218/p/8370670.html

第六步,使用docker部署Asp.Net Core Web站点
  • 使用VS2017新建Asp.Net Core Web应用程序NetCoreWebApp,并启用对Docker的支持。

  • 创建完成之后,是可以直接运行的,但是,我们这里需要添加一些自己的代码,然后再发布到CentOS下运行。
        添加Model

public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}

  添加控制器

经过上述步骤之后,VS为我们创建了
  • Entity Framework Core 数据库上下文类 (Data/MvcMovieContext.cs)
  • 电影控制器 (Controllers/MoviesController.cs)
  • “创建”、“删除”、“详细信息”、“编辑”和“索引”页面的 Razor 视图文件 (Views/Movies/*.cshtml)
查看Startup中的代码,我们可以发现默认为我们创建的是使用SqlServer的数据库上下文类
services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MvcMovieContext")));

因为我本机并没有安装Sql Server,并且一会要部署到CentOS7中,Sql Server LocalDB不能远程连接,所以这里改用MySql数据库,本机有MySql数据库,实际工作中,这两年也是用的MySql数据库。

  • 修改appsettings.json中的连接字符串
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"MvcMovieContext": "Data Source=10.101.98.197;port=3306;Initial Catalog=mvcmovies;user id=test;password=123456;Charset=utf8;SslMode = none;"
}
}
  • 修改Startup中数据库上下为你的实例为使用MySql数据库
services.AddDbContext<MvcMovieContext>(options =>
options.UseMySql(Configuration.GetConnectionString("MvcMovieContext")));
  • 从NuGet引用Pomelo.EntityFrameworkCore.MySql以及Microsoft.EntityFrameworkCore.Tools,在包管理器控制台中运行:
 Install-Package Pomelo.EntityFrameworkCore.MySql
Install-Package Microsoft.EntityFrameworkCore.Tools
  • 添加初始迁移,并更新数据库,在包管理器控制台中运行:
Add-Migration Initial
Update-Database
  如果运行以上命令,报错:PowerShell version 2.0 is not supported. Please upgrade PowerShell to 3.0 or greater and restart Visual Studio.
       那么你需要安装这个补丁:https://www.microsoft.com/zh-CN/download/details.aspx?id=40855
  • 最后,直接运行,对Movie的增删查改就实现了。

第七步,发布,通过cmd命令行,切换到你的解决方案所在的目录,然后直接输入dotnet publish即可。然后打开F:\dengwei\NetCoreWebApp\NetCoreWebApp\bin\Debug\netcoreapp2.1目录,就可以找到你刚刚发布的publish文件夹了。

 
第八步,拉取aspnetcore最新镜像:
docker pull microsoft/aspnetcore

拉取完成之后,查看镜像

docker images

第九步,下载winscp,并安装,用来传输文件到CentOS中,下载地址:https://winscp.net/eng/docs/lang:chs

第十步,修改Dockerfile的文件内容为:

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY ./publish .
EXPOSE 8080
CMD ["dotnet", "NetCoreWebApp.dll"]

第十一步,切换到第九步上传文件的目录,创建镜像,注意最后的“.”

docker build -t netcoreapp .

查看镜像,除了刚才拉取的.net core运行环境的镜像,还有刚创建的netcoreapp镜像

运行容器:ctnetcore为容器的名称 netcoreapp为刚才创建的镜像名称

docker run --name ctnetcore -p 8080:80 -d netcoreapp

使用curl访问网址:curl http://192.168.235.128:8080返回了首页的html

curl http://192.168.235.128:8080

通过Windows浏览器访问,得到的与直接在VS中运行出来的结果一致,并且访问MySql中的数据也是成功的,MySql是装在Windows上的

直接在Windows中运行:

学习使用过程中,你可能会使用到的命令

pwd # 查看当前路径

cd / # 回到根目录

mkdir # 创建文件夹

docker rm ctnetcore # 删除名称为ctnetcore的容器

docker rmi netcoreapp # 删除名称为netcoreapp的镜像

docker ps -a # 查看所有容器

docker images # 查看所有镜像

docker rm $(docker ps -a -q) # 删除所有的容器

docker rmi $(docker images -q) # 删除所有的镜像

没有人能随随便便成功!

CentOS7布署.Net Core的更多相关文章

  1. CentOS ASP.NET Core Runtime Jexus跨平台布署

    .net core 开源和跨平台,能布署到当前主流的Windows,Linux,macOS 系统上.本篇我们将在 Linux 系统上使用 ASP.NET Core Runtime 和 Jexus 布署 ...

  2. centOS7 flask项目布署

    先用1张图表示centOS布署flask的关键点,以及可能遇到的问题,及解决办法. 图片看不清,可以[下载]下来看,清晰度能够看清字 [目标] 局域网内,通过url可以访问flask编写的api 更新 ...

  3. CentOS7 Nodejs布署环境

    一.服务器设置:https://www.youtube.com/watch?v=1OU5ngq-WyM&list=PLQlWzK5tU-gDyxC1JTpyC2avvJlt3hrIh& ...

  4. solr5.5教程-tomcat布署(2)

    tomcat 布署成功后,接下来就是使用了. 首先要创建一个core. 1.选择右侧菜单, Core Admin -> Add Core. 注意:name自己定义,instanceDir要填写上 ...

  5. Docker集群实验环境布署--swarm【1 架构说明】

    在读完<Docker技术入门与实践>这本书后,基本上已对Docker了有一些入门的理解,以及我们为什么要使用Docker 答:我们发现在实际工作中,通过openstack一旦把一个VM创建 ...

  6. 第一篇【Zabbix服务端的完整布署】

    1.环境准备 服务器版本: [root@filestore-v2 ~]# cat /etc/redhat-release CentOS Linux release (Core) 内核版本: [root ...

  7. 从pip+requirements.txt+virtualenv管理依赖到使用pipenv管理依赖-修改布署方式

    背景: 已经使用pip+requirements.txt+virtualenv管理了项目一段时间,为了不要每次都 导出依赖(本地),安装依赖(服务器) 现在要使用pipenv来管理项目的依赖关系 思路 ...

  8. flask环境布署--废弃不用,只留作备份

    [前置条件] 创建1个flask-demo,生成requirement.txt文件(下载好gunicorn),上传至git.创建demo参照:创建一个flask api-demo(响应体显示中文) g ...

  9. 使用docker布署wordpress

    环境准备 本博客使用docker环境搭建,从而做到布署简单 centos7环境(centos6跑docker要升级内核,也不建议这样做) 在centos7上安装好docker环境docker安装文档 ...

随机推荐

  1. [poj1269]Intersecting Lines

    题目大意:求两条直线的交点坐标. 解题关键:叉积的运用. 证明: 直线的一般方程为$F(x) = ax + by + c = 0$.既然我们已经知道直线的两个点,假设为$(x_0,y_0), (x_1 ...

  2. Django的admin介绍

    我们看到我们创建一个默认的django的项目,他在project的urls有一个admin的url的路径 我们访问这个路径,他是一个登陆框,需要输入用户名和密码 我们就需要创建这个用户名和密码,如果你 ...

  3. swift中UITextView的使用

    https://blog.csdn.net/potato512/article/details/52692604

  4. swift 约束 - SnapKit 适配iPhoneX 安全区 和苹果自带的VFL ,auto layout 安全区适配

    这里tableview 是从最顶上的安全区适配的, nextBtn是最下边从安全区设置的,如果是在中间的view还是原来的写法,看2 1.安全区适配适用于Vc里面, 如果是自定义的view或封装的vi ...

  5. js-addEventListener()第三个参数useCapture

    概述: 第3个参数叫做useCapture,是一個boolean值,就是true or false .如果送出true的話就是瀏覽器會使用Capture方式,false的話是Bubbling,只有在特 ...

  6. METAGENOMIC SEQUENCING ANALYSIS WORKFLOW

    Metagenomics is defined as the study of the metagenome, which is total genomic DNA from environmenta ...

  7. 47 On Interpersonal Relationship 关于人际关系

    47 On Interpersonal Relationship 关于人际关系 ①Since we are social beings, the quality of our lives depend ...

  8. BeautifulSoup基本步骤

    http://blog.csdn.net/kikaylee/article/details/56841789 ’BeautifulSoup是Python的一个库,最主要的功能就是从网页爬取我们需要的数 ...

  9. JS数组去重算法实现

    之前一段时间一直在准备面试, 因而博客太久没更新: 现在基本知识点都复习完毕, 接下来就分享下 面试的一些常见问题: 去正规的互联网公司笔试.面试有很大的概率会碰到 使用javascript实现数组去 ...

  10. faceswap安装说明

    Installing Faceswap Installing Faceswap Prerequisites Hardware Requirements Supported operating syst ...