如何將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:表示將DockerContainer5000埠映射到主機環境的8089


不完善,或者還可以改進的地方可以給我留言,感謝!