.Net 6 WebApi 項目 在Linux系統上 打包成Docker鏡像,發佈為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 負載均衡配置,提高程式的性能。