我在阿里云購買的 主機
安裝的是 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 : 也可以訪問

有用請點贊或留言,謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/183360.html
標籤:其他
上一篇:python-利用Tushare金融大資料社區的資料就行回測
下一篇:自助建站與智能建站有什么特點


