AspNetCoreapi 使用 Docker + Centos 7部署

2018 年 11 月 4 日 DotNet

(点击上方蓝字,可快速关注我们)


来源:乐途

cnblogs.com/szlblog/p/9871400.html


今天记录一下AspNetCore 部署Docker+Centos 7 这里说明一下:Docker 需要用Centos7版本的操作系统


这里模拟演示的是实战环境的部署,项目就是使用的实战中的项目


一、安装前准备


首先确保我们有一台Linux 服务器或者系统或者虚拟机,我使用的是虚拟机系统做的Centos 7的版本。


然后确保网络是通的,最好能联通外网,因为我们在部署的过程须有很多的东西需要下载:


部署中使用的工具:secureCRT:链接Linux终端的服务器,


                            :XFTP5    :上传发布的文件


二、安装Docker 步骤如下:


使用:secureCRT链接上Linux 如下:



Docker的官方文档:https://docs.docker.com/


Docker 分为社区版CE和企业版EE,CE是免费提供给开发者和小团体使用,企业版的是收费的,我这里选择使用的是社区版的。


步骤:如下


1.开始安装:首先执行命令安装所需的包:sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2


2.设置稳定的存储库:sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo


3.安装:sudo yum install docker-ce


4.启动:sudo systemctl start docker


5.验证是否成功: sudo docker version


6.安装结果:



这里是官方安装过程:https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1


三、AspNetCore 镜像的选择与拉取


选择下载镜像前我们首先需要确定的是我们项目将要或者已经使用的是什么版本的项目框架,我们项目使用的是2.1;



在下载镜像的时候我们可以事先给下载好镜像,也可以使用 Dockerfile 文件进行下载:


如果我们需要在Docker 容器中进行编译打包运行等操作的时候我们就需要安装完整的SDK了, 如果我们只是单纯的运行的话只需要安装运行时 aspnetcore-runtime就行:官方文档中也有明确的说明:



拉取镜像有两种方式如下:


1.使用命令拉取镜像: docker pull microsoft/dotnet:2.1-sdk



查看结果:docker images



2.使用Dockerfile 文件拉取


新建新建文件去掉后缀名命名为:Dockerfile  编辑文件内容如下:请注意FROM 节点上也是咱们将要使用的镜像:下图箭头指向部分



切换到Dockerfile 文件所在的目录下 执行命令 创建一个镜像



查看结果:



这里有两个镜像 名为ESD镜像就是咱们的项目运行镜像了,但是我们没有准备任何将要运行的项目,所以此镜像是失败的,我们执行这一步证明了Docker 可以直接拉取项目运行的镜像。


执行命令对它进行删除:docker rmi  esd(可以使用镜像的名称或者镜像的 ID进行删除)



四、项目的部署:


首先在进行部署前我建议大家先看认真看一边官方有关Docker的网络配置


https://docs.docker.com/network/


一个新的项目如果不对项目的IP或端口进行任何改变的话 部署成功后默认监听的是80 端口,如下图所示:



如果你不进行改变的话也就是说这个项目部署是就使用80端口了,在创建容器的时候重新指定的端口就访问不通了。


所以我首先改动了项目中的项目运行时监听的端口在项目文件Program添加代码如下:


.UseKestrel().UseUrls("http://*:8091") // 在所有网络接口上监听端口 8091



改好后进行发布:发布完成后上传到服务器Dockerfire 文件所在的目录中


对Dockerfire 进行修改




使用命令运行该Dockerfire 文件创建容器


命令: docker build -t  esdapi .  


这个命令需要注意的是 镜像名称 不要使用大写 镜像名称后的 “点”不要忽略了



创建容器:


命令:docker run --name esdapi -d -p 8091:8091 esdapi


结果如图所示:



查看结果:docker ps



这里注意的是在查看结果的时候如果没有容器在运行则使用 docker ps -a 命令查看容器找到容器的ID 使用 docker logs +容器ID 查看容器日志信息找原因。


外部访问部署结果:



完本文有收获?请转发分享给更多人

关注「DotNet」,提升.Net技能 

登录查看更多
0

相关内容

Docker - An open platform for distributed applications for developers and sysadmins.
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
76+阅读 · 2020年4月24日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
119+阅读 · 2019年12月31日
通过Docker安装谷歌足球游戏环境
CreateAMind
11+阅读 · 2019年7月7日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Arxiv
35+阅读 · 2019年11月7日
Real-time Scalable Dense Surfel Mapping
Arxiv
5+阅读 · 2019年9月10日
VIP会员
相关资讯
通过Docker安装谷歌足球游戏环境
CreateAMind
11+阅读 · 2019年7月7日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Top
微信扫码咨询专知VIP会员