1. 程式人生 > 其它 >.Net 6 WebApi 專案部署到 Linux 系統上的 Docker 容器

.Net 6 WebApi 專案部署到 Linux 系統上的 Docker 容器

1.建立一個基礎的WebApi專案

注意:因為釋出時候,Dockerfile檔案必須和解決方案.cspro檔案放在同級,所以建議勾上這個,當時遇到這個問題,導致打包映象時找不到.cspro檔案,搞了好久

點選建立,專案基礎框架是這樣的:

在Program中能夠看到 MinimalApi 自帶的示例:

切換到專案配置執行,能夠請求到資料:

2.將專案檔案用Xftp拷貝到Linux系統中,我這裡用的是VMWare虛擬機器的CentOS7系統,

拷貝到root目錄下,自建一個釋出專案的資料夾(這裡我建立的是DockerPublish資料夾)裡面

3、輸入命令,進入到專案資料夾裡面:

系統需裝好docker,安裝好常用的命令、配置好環境。

輸入命令:docker images    -檢視當前的全部映象:

4.通過 Dockerfile 檔案 ,將專案打包成映象:

命令:  docker build -t [新建的映象名]:[指定的版本號] -f Dockerfile .  

注意:Dockerfile 後面的 "." 不可少!

輸入打包映象的命令之後,開始打包,看到如下資訊表示映象建立成功:

5. 通過映象構建容器例項:

命令:docker run --name mywebapi -d -p 5566:80 net6webapi:1.0

命令格式:docker run --name [自定義容器名] -d -p [自定義對外埠]:[Dockerfile中指定的埠,不修改的話,一般都是80] [映象名]:[版本號]

容器建立好之後,通過命令 :docker  ps  (檢視正在執行的容器)  ,  docker ps -a  (檢視全部容器)

docker ps 能夠看到剛才建立的容器,就成功了:

接下來在電腦上,通過虛擬機器的地址訪問mywebapi,可以用 ifconfig 命令 檢視虛擬機器地址,

如果你和我一樣也用的 Xshell7 連線工具,那麼左下角可以直接看到虛擬機器的地址:

瀏覽器輸入地址 192.168.146.129:5566/weatherforecast 能夠訪問到資料,成功了!

5566埠即為第5步,映象例項化成容器時,指定的容器埠

注意:如果訪問不到,但是 docker ps 可以看到容器,說明容器運行了,但是映象有問題,會有報錯,

通過命令:docker logs [容器名] 可以看到執行的容器,報錯日誌

6.通過一個映象,構建多個容器例項,給不同埠,拿到一個映象,哪兒都能跑起來,跑同一套程式碼

如果部署到伺服器上,別人拿到我的映象,也能跑我的程式碼,這就是docker的優勢,一個映象就是整個程式。

在實際專案開發中,會將同一個映象的多個容器例項,使用 Nginx 負載均衡配置,提高程式的效能。