如何將dotnet core webapi釋出到docker中…
阿新 • • 發佈:2020-04-24
如何將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埠
不完善,或者還可以改進的地方可以給我留言,感謝!