CentOS7布署.Net Core
本文记录的所有东西,都是吸取别人的经验,自己实践得来,记录下来,也是为了某一天,用上的时候,能够更加的得心应手,平日的学习,都是未雨绸缪之举,但愿,这些笔记,也能帮上正在摸索的你。
第一步,下载虚拟机并安装。下载地址:http://www.zdfans.com/html/5928.html
第二步,下载CentOS7镜像,下载地址:https://www.centos.org/download/
第三步,在虚拟机中安装CentOS7,按照默认配置一直下一步即可,最后一步选择你刚下载的CentOS7的镜像文件,最后开启此虚拟机,按照提示安装完成即可。
第四步,配置CentOS7的网络
- 进入目录:
cd /etc/sysconfig/network-srcipts
- 重启网络服务:service network restart
- 查看IP地址:
ip addr

- 安装需要的软件包:-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
使用VS2017新建Asp.Net Core Web应用程序NetCoreWebApp,并启用对Docker的支持。

- 创建完成之后,是可以直接运行的,但是,我们这里需要添加一些自己的代码,然后再发布到CentOS下运行。
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; }
}
添加控制器

- Entity Framework Core 数据库上下文类 (Data/MvcMovieContext.cs)
- 电影控制器 (Controllers/MoviesController.cs)
- “创建”、“删除”、“详细信息”、“编辑”和“索引”页面的 Razor 视图文件 (Views/Movies/*.cshtml)
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
- 最后,直接运行,对Movie的增删查改就实现了。


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的更多相关文章
- CentOS ASP.NET Core Runtime Jexus跨平台布署
.net core 开源和跨平台,能布署到当前主流的Windows,Linux,macOS 系统上.本篇我们将在 Linux 系统上使用 ASP.NET Core Runtime 和 Jexus 布署 ...
- centOS7 flask项目布署
先用1张图表示centOS布署flask的关键点,以及可能遇到的问题,及解决办法. 图片看不清,可以[下载]下来看,清晰度能够看清字 [目标] 局域网内,通过url可以访问flask编写的api 更新 ...
- CentOS7 Nodejs布署环境
一.服务器设置:https://www.youtube.com/watch?v=1OU5ngq-WyM&list=PLQlWzK5tU-gDyxC1JTpyC2avvJlt3hrIh& ...
- solr5.5教程-tomcat布署(2)
tomcat 布署成功后,接下来就是使用了. 首先要创建一个core. 1.选择右侧菜单, Core Admin -> Add Core. 注意:name自己定义,instanceDir要填写上 ...
- Docker集群实验环境布署--swarm【1 架构说明】
在读完<Docker技术入门与实践>这本书后,基本上已对Docker了有一些入门的理解,以及我们为什么要使用Docker 答:我们发现在实际工作中,通过openstack一旦把一个VM创建 ...
- 第一篇【Zabbix服务端的完整布署】
1.环境准备 服务器版本: [root@filestore-v2 ~]# cat /etc/redhat-release CentOS Linux release (Core) 内核版本: [root ...
- 从pip+requirements.txt+virtualenv管理依赖到使用pipenv管理依赖-修改布署方式
背景: 已经使用pip+requirements.txt+virtualenv管理了项目一段时间,为了不要每次都 导出依赖(本地),安装依赖(服务器) 现在要使用pipenv来管理项目的依赖关系 思路 ...
- flask环境布署--废弃不用,只留作备份
[前置条件] 创建1个flask-demo,生成requirement.txt文件(下载好gunicorn),上传至git.创建demo参照:创建一个flask api-demo(响应体显示中文) g ...
- 使用docker布署wordpress
环境准备 本博客使用docker环境搭建,从而做到布署简单 centos7环境(centos6跑docker要升级内核,也不建议这样做) 在centos7上安装好docker环境docker安装文档 ...
随机推荐
- java的Map浅析
Map<K,V>是以键-值对存储的(key-value), 而Entry<K,V>是Map中的一个接口,Map.Entry<K,V>接口主要用于获取.比较 key和 ...
- IO模型与select,poll,epoll
五种:阻塞,非阻塞,IO复印,信号驱动,异步. select,poll,epoll select: 典型用32个32位的整数表示1024个描述符,并发的局限. poll:功能同上,但数据结构不一样(链 ...
- JavaScript对象继续总结
1.字符串对象 18_1.查看字符串的长度 var a = "hello world" alert(a.length) 18_2.遍历整个字符串的,这里的是索引 for (var ...
- css学习-css引入&css选择
一.引入css的方式,一共有4种,我们只需要掌握三种就可以了,@import的方法我们不做掌握 1.第一种引入的方法 <!--1.第一种引入css的方法--> <h1 style=& ...
- mysql只保留一条有效数据,删除其他重复的数据
delete from TableName where id in( SELECT ID FROM(SELECT * FROM TableName t0WHERE(t0.Field1,t0.Field ...
- PAT 1057 数零壹 (20)(代码+思路)
1057 数零壹(20 分) 给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二 ...
- mysql批量数据导入探究
最近工作碰到一个问题,如何将大量数据(100MB+)导入到远程的mysql server上. 尝试1: Statement执行executeBatch的方法.每次导入1000条记录.时间为12s/10 ...
- linux安装json
安装Json库 1.下载JsonCpphttp://sourceforge.net/projects/jsoncpp/files/ 2.下载sconshttp://sourceforge.net/pr ...
- Python GUI 编程
Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...
- 2018.09.16 atcoder Garbage Collector(贪心)
传送门 昨晚打比赛的时候不是很机智啊. 这道题贪心就能过了. 我们可以发现一个明显的结论,每次选的垃圾的距离从大到小排序之后,每个距离对答案的贡献的系数是5,5,7,9,11-也就是最远的是5,其余都 ...