在 阿里云上 Ubuntu(Linux)上 部署 .net core web 项目

   日期:2020-10-20     浏览:248    评论:0    
核心提示:我在阿里云购买的 主机安装的是 Ubuntu (乌班图)是 Linux 的一种 ,以下简称 Utuntu1、准备一个 core web 项目这个项目创建出来用docker 时无法调试运行的 ,vs 2019 会提示下载 Linux 镜像来调试这个项目 但是这个下载过程多半是卡死的这里先不管这个问题先把我们要的文件发布出来先先修改一下运行的端口 改下 代码:在Program 类中添加如下内容设置 占用端口webBuilder.UseUrls("http://*:52...

我在阿里云购买的 主机

安装的是 Ubuntu (乌班图) 是 Linux 的一种  ,以下简称 Utuntu

用到的工具:

  • vs 2019   宇宙第一IDE
  • xshell 远程 linux 工具

目录

1、准备一个 core web 项目

​2、直接在 Ubuntu 上部署

​3、在 Ubuntu 上 的 docker 上运行 .net core web 项目

 

 

 

1、准备一个 core web 项目

这个项目创建出来用docker 时无法调试运行的 ,vs 2019 会提示下载 Linux 镜像来调试这个项目 但是这个下载过程多半是卡死的 

这里先不管这个问题先把我们要的文件发布出来先

先修改一下运行的端口 改下 代码:在 Program 类中添加如下内容设置 占用端口

webBuilder.UseUrls("http://*:5210;http://*:5211;http://*:80");

设置下  Dockerfile 文件为始终复制

 

然后发布文件

 

点击编辑 确保  如下的 框架依赖  项

发布完成后在 pulish 文件夹内修改  Dockerfile 因为 之前的内容是为在 windows 上做调试  如果上 Docker 要删减很多内容

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 5210
EXPOSE 5211
EXPOSE 80


COPY . .
ENTRYPOINT ["dotnet", "你的项目名称.dll"]

然后打包为 publish.zip 

需要 拷贝 到  Utuntu 解压

所以需要在  Ubuntu 上安装 压缩软件 借用下别人的教程 安装 Unzip

Ubuntu unzip 安装   

然后 要把本地 windows 10 的 publish.zip 文件 copy Ubuntu  也需要在在 ubuntu 安装 工具

XShell本地上传文件到Ubuntu上及从Ubuntu下载文件到本地

安装完上面的 软件后 我就 把 publish.zip 压缩文件上传

可以看到 Ubuntu 当前的 目录 是 ~/project/publish

然后输入 解压命令 unzip publish.zip 解压到当前文件夹

 

2、直接在 Ubuntu 上部署


我的 云主机  系统为 ubuntu 20.04  是长支持版本

然后按照官网的实例安装需要的

https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu
 

1、将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb

2、安装 .net core sdk

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-3.1

3、安装 .net core 运行时

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-3.1

完事后 dotnet --version 看看 结果:我这边用了 远程 linux 的远程工具 Xshell 

这个软件很好找就不多说了

ok  notnet 环境已经ok 了 

然后 进入 publish 文件夹内 运行 命令 dotnet coreweb.dll  

 coreweb 是我的项目名称,需要按实际更改

dotnet 你的项目名称.dll

然后 结果如下就是正常启动

现在这个窗口就运行上 我们的项目 了  有提示 ctrl +c 推出 但是在它运行的同时我们还要输入命令 

可以再新建一个窗口来输入命令  

测试下 ubuntu 本地能不能访问这个网站 输入 

curl http:/127.0.0.1:80

或者

curl http:/127.0.0.1:5210

或者

curl http:/127.0.0.1:5211

看到 返回了 项目 首页 欢迎 的 html  就说明本地没问题

然后在 win 10 用浏览器  访问下:Ubuntu 的 公网IP +端口    发现访问不了

这个时候就需要去阿里云 暴露一下 5211 端口

然后成功:

 

3、在 Ubuntu 上 的 docker 上运行 .net core web 项目

先把上面 2 运行的实例关掉  不然 端口占用问题可能会导致docker的container 启动不了

// 查看当前进程
ps
// 杀掉指定进程
kill %pid

 

在 Ubuntu 上 安装 docker :

curl -sSL https://get.daocloud.io/docker | sh

docker --version 测试下安装成功没

然后去 publish 文件夹下 执行 打包镜像 命令  ,这后面的 很重要 

docker build -t corewebimage .

有了镜像就可以运行实例了: 这里的 80 : 80 是 

Ubuntu 的 80 指向 container 的 80 端口  这个指向是必须的 ,

简单理解就是每个 container 都是一个小小虚拟机 需要指明 宿主机映射端口  否者我们无法访问到我们的 .net  core 项目

 

docker run -d -p 80:80 corewebimage

看到 container 运行起来了 

现在 就可以 用 curl 查看 下 内网能不能访问 :可以看到内网没问题 返回了 首页的 html

在 win 10 用浏览器试试 公网IP : 也可以访问

有用请点赞或留言,谢谢

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服