如何將dotnet core webapi發布到docker中…
如何將dotnet core webapi發布到docker中
今天想起來擼一下docker,中途還是遇到些問題,但是這些問題都是由於路徑什麼的導致不正確,在這兒還是記錄下操作過程,今天是基於windows來操作docker,先把windows搞定,後面再去Linux上搞docker。
1、前提條件
- Win10系統,不能是家庭版,並且需要開啟Hyper-V
- 官網下載並安裝:docker desktop for window
- 註冊一個docker hub的帳號,用於後面可以把鏡像推送到在線倉庫中
- 本地dotnet core開發環境
2、安裝docker
- 下載docker desktop後直接根據提示進行安裝
- 安裝完成之後,打開CMD命令框,輸入docker –version 能看到版本號就說明安裝成功了
- 登錄dockerhub帳號:docker login回車根據提示輸入你的帳號密碼即可
- cmd輸入:docker run hello-world 拉取鏡像並且運行一個容器
- cmd輸入:docker image ls 查看鏡像列表
- cmd輸入:docker container ls 查看運行的容器列表
- CMD輸入:**docker –help** 可以查看docker命令的幫助資訊
3、創建WebApi,編譯發布到指定目錄
4、在WebApi發布目錄中建立DockerFile文件,添加如下內容
# 基於microsoft/dotnet:latest構建Docker Image
# FROM microsoft/dotnet:latest
# FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903
# 將publish下的所有文件拷貝到工作目錄
COPY *.* ./
# 埠
EXPOSE 5000
# 啟動webapi
CMD ["dotnet", "WebApi.dll"]
5、CMD進入WebApi發布目錄,構建WebApi鏡像,並啟動容器
- CMD輸入命令:docker image build -t yazid2020/test_webapi:1.0.1 .
- 啟動容器:docker run -it -p 8089:5000 yazid2020/test_webapi:1.0.1
- 然後去訪問介面,能看到已經能得到響應了
-
6、將鏡像推送到docker hub中
- 在docker hub中先建立一個Repository鏡像倉儲【yazid2020/test_webapi】
- 將鏡像推送到倉儲:docker push yazid2020/test_webapi:1.0.1,這裡可能會提示未登錄,使用docker login登錄即可
- 到這裡就完成了將core webapi發布到docker中,並且將鏡像推送到在線倉儲,以後再次使用這個鏡像時,直接拉取運行即可
docker pull yazid2020/test_webapi:1.0.1
docker run -it -p 8089:5000 yazid2020/test_webapi:1.0.1
# -it:表示需要提供一個模擬的shell環境
# -p 8089:5000:表示將DockerContainer的5000埠映射到主機環境的8089埠
不完善,或者還可以改進的地方可以給我留言,感謝!