Linux下使用docker部署netcore(一)

Linux下使用docker部署前後分離netcore webapi項目、前端vue頁面、Mysql、Redis、SQLite

說明

這篇文章是爲了記錄公司的項目部署過程,方便給其他運維人員查閱,我對linux的詳細操作談不上非常精通,如果只是想了解實戰項目的部署流程可以查看這篇文章。本文介紹了linux下使用docker的基本操作、使用docker部署netcore webapi項目、vue項目、Mysql、Redis、SQLite。我們先是一步一步部署,之後會採用docker-compose一步生成多種環境。 本人能力有限,底層的東西講不清楚,但是會把遇到的問題的解決辦法分享出來供大家查閱。廢話不多說,直接整。

安裝Docker

此處在Centos7進行安裝,使用其他版本的系統可能在語句上要有所更改,自行百度吧。
1.首先查看自己的服務器上裝沒裝docker,避免安裝重複。

sudo yum update  #更新一下yum包
sudo yum install -y yum-utils  #安裝 yum-utils,它提供了 yum-config-manager,可用來管理yum源
yum list installed | grep docker

如果已經安裝了就不需要再次安裝。

2.安裝docker

yum -y install docker-ce

出現這種結果就代表安裝完成
提示我們已經安裝完成。
如果說No package docker-ce available,則運行:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

這一步設置穩定的倉庫,添加yum源。之後再進行安裝就可以了。

安裝不上的話試試這種方法

啓動docker

sudo systemctl start docker

設置docker自啓動

sudo systemctl enable docker

查看docker是否運行起來

systemctl status docker

在這裏插入圖片描述

docker已經部署好了,接下來我們正式開始一樣一樣部署我們的項目。

Docker部署netcore項目

我們都知道netcore項目是需要依賴於程序運行時和SDK纔可以運行的,也就是說部署netcore項目第一步應該是安裝運行環境。

詳細操作只需要三步,參考:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos
在這裏插入圖片描述
2. 在我們自己的項目裏右鍵項目,新增–>啓動docker支持,之後我們會看到在項目裏新增了一個Dockerfile文件
在這裏插入圖片描述
我們暫時先不需要修改這個文件,但是需要右鍵Dockerfile文件,屬性–>如果較新則複製。接下來我們在文件管理夾中把我們的項目壓縮、拷貝到我們linux服務器上,我們在服務器上編譯發佈。
在linux下創建一個文件夾

mkdir datavisual
   ls

在這裏插入圖片描述
文件夾創建成功,我們使用rz命令上傳我們的文件。*(rz命令就是跳出我們熟悉的上傳窗口)

   rz

在這裏插入圖片描述
如果rz命令不起作用,安裝一下lrzsz

   yum install lrzsz -y

我們把文件導入到我們文件夾中後需要解壓一下,我選擇解壓到DataVisualization 的同名文件夾下

   unzip -d DataVisualization DataVisualization.zip 

解壓之後我們進入我們的文件夾,使用ls命令查看目錄結構

在這裏插入圖片描述
我們可以看到裏面有一個Dockerfile文件,我們將Dockerfile文件移動到上一級目錄(原因是Dockerfile裏的路徑是從上級結構看的)

mv Dockerfile ..

在這裏插入圖片描述
運行Dockerfile,並生成鏡像

docker build -t mynetcore:1.0 .

這個過程可能需要稍微等待一會。。。
創建鏡像一共會有17步操作,鏡像生成成功之後會是這樣的結果:
在這裏插入圖片描述

docker images  #查看生成的鏡像

在這裏插入圖片描述
運行下面的語句生成容器

docker run --name datavisual -d -p 8055:80 mynetcore:1.0

查看容器生成是否成功:

docker ps -a

在這裏插入圖片描述
我們可以看到我們的容器生成成功了,可以直接根據ip端口訪問我們的netcore應用程序了。
注意上面圖片的STATUS是Up狀態才代表容器生成成功,如果是Exited(***)代表生成失敗,怎麼處理後面說。

就這樣,有問題留言,只要我看到並且我瞭解的一定回覆!

下一篇介紹docker下部署mysql

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章