Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
运行环境
照例,先亮环境;软件的话我这里假设你已经批准好了.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命令)
首先确保你的项目能在windows上运行
修改一下运行绑定的的端口号
添加Dockerfile
填入如下内容
FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "WebApplication3.dll"]
并设置Dockerfile的属性
!
ok,接下来发布
我发布到默认的 binReleasenetcoreapp2.1publish 下面,你们可以自定义目录
发布完成后可看到如下文件结构
ok,web程序已经准备好。
上传应用程序到linux
我这里使用xftp工具上传,上传目录是 /home/website/WebApplication3
构建镜像
执行:
cd /home/website/WebApplication3
docker build -t webapplication3 .
这里是去到Dockerfile所在的目录,构建一个名字叫做webapplication3的镜像,注意build命令后面的
.
不可获取,这个.
代表的是当前构建镜像的上下文路径;
看到Successfully心情莫名愉悦,这说明镜像构建成功,我使用命令docker images
看看:
启动容器
执行下面命令,启动我们刚刚构建好的webapplication3 容器
docker run --name webapplication3 -d -p 5004:5004 webapplication3
这样表示容器正常启动了
我们看看:
docker ps
容器正常运行,浏览器访问 http://你的服务器ip:5004
噢耶,大功告成!
至此,.net core 程序docker部署方式完毕,若使用服务方式部署,请看我的 Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署
- R语言网络数据抓取的又一个难题,终于攻破了!
- R语言数据清洗实战——高效list解析方案
- 左手用R右手Python系列——循环中的错误异常规避
- SpringBoot2.x开发案例之整合Quartz任务管理系统
- 给出一组非负整数,重新排序组成最大的数
- [机智的机器在学习] TensorFlow实现Kmeans聚类
- [机智的机器在学习] 利用TensorFlow实现多元线性回归分类器
- [数据结构和算法]《算法导论》动态规划笔记(1)
- [数据结构和算法]《算法导论》动态规划笔记(2)
- [算法与数据结构] 《算法导论》堆排序笔记
- [数据结构与算法] 链表的其他类型
- [数据结构与算法] 链接表总结
- [数据结构与算法] 线性表总结
- [数据结构与算法] Python实现二分查找
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 猿蜕变系列8——一文搞懂Interceptor操纵姿势
- 猿蜕变9——一文搞定SpringMVC的RESTFul套路
- 猿蜕变10——一文学会ORM的正确打开姿势
- 猿蜕变11——一文掌握mybatis全局玩儿法
- 猿蜕变12——一文搞定mybatis花式玩法
- 猿蜕变13——一文搞懂mybatis规范和标签
- 猿蜕变14——一文搞懂AOP的套路
- 猿蜕变15——一文搞懂Spring AOP的正确姿势
- 猿蜕变16——一文搞懂Spring事务花式玩法
- 猿蜕变17——一文掌握SSM框架搭建姿势
- 猿蜕变18——一文掌控SSM玩耍方式
- 猿蜕变19——一文掌握代码自动生成
- 基于Java的俄罗斯方块游戏的设计与实现
- Docker中部署RabbitMQ并使用Python3.x操作全书(Python操作RabbitMQ看这一篇就够了)
- 【CPP】模板类线性表