Linux下基於Docker部署.Net Core web api項目

Docker的好處我就不說啦,問問度娘就知道了😄

在動手之前我假設您已經安裝了Docker(Linux環境)

準備好一個web api項目,如果您還不知道怎樣用vs建web api項目,請看此篇博客

https://www.cnblogs.com/zhangnever/p/11915509.html

如果還沒安裝Docker請先別急,移步至此地址安裝

https://www.runoob.com/docker/centos-docker-install.html

在這裏先說幾條Docker的命令,因爲一會兒會用到

1.docker ps -a  --查看所有的容器
2.docker ps  --查看正在運行的容器
3.docker images  --查看所有的鏡像
4.docker logs 容器id  --查看指定容器的日誌
5.docker pull 鏡像名 --拉取指定鏡像

首先在Program類添加如下代碼,UseUrls方法設置ip和端口號(可不和我一樣),這樣的話發佈之後外網就可對其進行訪問。一定要加上這句代碼!!!

.UseUrls("http://*:9659")

 然後右鍵-屬性發布項目

 進入發佈後的文件夾,將發佈後的所有文件copy出來,上傳至Linux服務器,我用的是Xftp,在此之前在tmp目錄下新建一個文件夾(名稱隨意)

 然後將xml文件copy進來,不然發佈會報錯。xml文件找不到

 打開Linux命令行終端工具,我用的是Xshell.切換到項目根目錄下,Vim創建Dockerfile文件,當然你也可以右鍵新建文件也行

 寫入這四句命令

FROM microsoft/dotnet:2.2-aspnetcore-runtime

WORKDIR /app

EXPOSE 9659

COPY . . 

CMD ["dotnet", "CoreFrame.dll"

 然後拉取鏡像,我這是.net core 2.2的項目,依據你的項目版本來

docker pull microsoft/dotnet:2.2-aspnetcore-runtime

我這邊已經拉取過了,所以會提示我,已經存在最新的microsoft/dotnet:2.2-aspnetcore-runtime,你要稍微等個幾分鐘...

拉取完成之後你可以用docker images命令看看有沒有這個鏡像

[root@instance-1epqf1sp core]# docker images
REPOSITORY                             TAG                      IMAGE ID            CREATED             SIZE
docker.io/microsoft/dotnet             2.2-aspnetcore-runtime   594143f47344        2 weeks ago         261 MB

接下來執行下面這條命令,創建我們的項目鏡像,"."代表使用當前目錄下的Dockerfile創建鏡像

docker build -t apiproject .

 再使用docker images命令看看是否創建

[root@instance-1epqf1sp core]# docker images
REPOSITORY                             TAG                      IMAGE ID            CREATED              SIZE
apiproject                             latest                   f0036423060a        About a minute ago   301 MB
docker.io/microsoft/dotnet             2.2-aspnetcore-runtime   594143f47344        2 weeks ago          261 MB

無誤後執行下面這條命令,啓動容器,成功之後會有一長串字符

docker run -d -p 9659:9659 --name corewebapi apiproject
--corewebapi是容器名稱
--apiproject是依賴的鏡像

 查看運行的容器

 瀏覽器中就可以打開swagger文檔了

 如果容器沒有運行的話,要查看錯誤日誌,看看報的什麼錯,再解決。如果你按照我寫的步驟來的話應該不會報錯。😊

 

 晚安!🌙

 

 

 

 

 

 

 

 

 

 

 

 

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