asp.net core 應用docke部署到centos7

wuli君子不器發表於2020-08-16

前言

前期準備

win10 (不要安裝hyper-V)

VMware-Workstation-Pro/15.0

Xshell6 (非必需)

VS2019

以上環境請自行安裝 都是預設安裝沒什麼可說的 不會的話可以百度

在VM安裝centos7

首先下載centos7 的映象

映象地址 選擇網易映象 下載快

http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2003.iso

映象配置

1.建立虛擬機器=> 選擇自定義

...(這裡省略步驟 預設安裝就行)

2.安裝來源 =>安裝程式光碟映像檔案 選擇剛剛下載centos7

...

3.處理器配置最好選擇2x2 記憶體最好是2048MB以上 後面的磁碟空間最好是40GB

...

4.網路連線 使用橋接網路 這個很重要

...

5.完成即可

然後啟動

安裝嚮導

1.出現如圖所示頁面 滑鼠移入 選擇上鍵 點選enter (滑鼠移出 ctrl+alt)

2.enter 直到出現安裝嚮導的圖形化介面

3.選擇中文 中文簡體 繼續(在最下面)

4.在這裡進入安裝位置 點選完成

5.再進入網路和主機名頁面 開啟乙太網 再點選完成 開始安裝

6.設定ROOT密碼 (如果密碼太短的話 需要點選完成 兩次)

7.接下來等待安裝完成 (大致5-10分鐘吧) 點選重啟按鈕即可

8.輸入使用者名稱root 和自己設定的密碼

9.然後輸入命令 ip a 得到網路地址

連線Xshell

1.新建 名稱和主機都填入ip地址 然後新增連線

2.然後會彈出ssh安裝警告 選擇接受並儲存

3.輸入使用者名稱root 並勾選記住使用者名稱

4.輸入密碼 並勾選記住密碼

5.然後就可以進入命令列模式了

安裝docker

# 更新
yum -y update
# 下載docker的依賴環境
yum install -y yum-utils device-mapper-persistent-data lvm2
# 設定映象源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安裝docker
yum -y install docker-ce
# 啟動docker 服務
systemctl start docker 
# 設定開機自動啟動
systemctl enable docker
# 測試
docker run hello-world

出現如下所示表示成功

安裝一些軟體保證後續的操作

yum install -y vim 
yum install -y unzip 
# xshell傳輸檔案 
yum install -y lrzsz

建立netcore簡單示例

1.開啟vs2019 新建專案

2.選擇asp.netcore web應用程式 專案模板

  1. 選擇web應用程式(模板檢視控制器) 勾選https配置

    勾選啟用docker支援 並選擇linux環境

  1. 建立專案

  2. 切換啟動方式 啟動專案

7.正常啟動

上傳檔案

1.關閉程式 關閉vs2019 來到專案檔案位置

將Dockerfile 檔案移動到和.sln檔案一個資料夾之下

2.Dockerfile檔案內容

#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 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["NetCoreSample/NetCoreSample.csproj", "NetCoreSample/"]
RUN dotnet restore "NetCoreSample/NetCoreSample.csproj"
COPY . .
WORKDIR "/src/NetCoreSample"
RUN dotnet build "NetCoreSample.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "NetCoreSample.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "NetCoreSample.dll"]

3.壓縮為zip檔案

4.上傳netcoresample.zip

cd /
# 建立目錄來存放檔案
mkdir workspace 
cd workspace
# 上傳檔案(請選安裝lrzsz)
rz -y 

# 解壓檔案到NetCoreSample
unzip NetCoreSample.zip -d NetCoreSample

安裝dotnet環境

# 下載dotnet的環境 這兩個地址同Dockerfile檔案中的地址一樣 
# 這兩個檔案下面的檔案地址很慢很慢很慢 我差不多用了一個下午 中間還斷了好幾次
docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
docker pull mcr.microsoft.com/dotnet/core/sdk:3.1-buster

下載完成之後使用這個命令檢視
docker images

執行netcore示例

# 構建映象
docker build -t netcoresample 
# 檢視
docker images

# 執行例項
docker run -it --rm -p 5000:80 --name netcore_sample netcoresample &

netcore_sample 是例項名
netcoresample 是前面建立的映象名稱

# 檢視
docker ps 

現在就可以回到本機在瀏覽器中訪問centos7的ip地址+埠號 192.168.1.10:5000 得到和前面看到的一樣的畫面就成功了。

其他

# 刪除映象命令 注意可能有依賴關係,可能需要刪除兩個
docker rmi -f  映象id
# 刪除docker例項
docker kill 例項id

後記

更多docker命令 請關注博主的其他文章

本文章只是演示一種部署方式 更多方式請關注博主的其他文章

如需要軟體 請在下面留言

如有錯誤和問題 請在下方留言

相關文章