1. 安裝docker-desktop,windows環境安裝包docker
官方網站:https://www.docker.com/json
2.註冊登錄Docker帳號windows
安裝成功後,在官方網站註冊一個帳號,使用帳號登錄docker,而後windows的Hyper-V虛擬機就有一個新的虛擬機了測試
注意:登錄Docker不能使用郵箱做爲帳號,不然使用Docker的編譯發佈鏡像的時候,會出現沒法驗證的錯誤網站
Get https://registry-1.docker.io/v2/microsoft/dotnet/manifests/latest: unauthorized: incorrect username or passwordui
3.建立core的項目,確保能在本地運行。測試項目綁定本地的5000端口spa
public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseUrls("http://*:5000") .UseStartup<Startup>() .Build();
4.使用vs發佈生成代碼.net
5.發佈成功後,publish文件夾添加Dockerfile文件,文件內容以下code
# 基於microsoft/dotnet:latest構建Docker Image FROM microsoft/dotnet:latest # 進入docker中的/usr/local/src目錄 RUN cd /usr/local/src # 建立DockerWebAPI目錄 RUN mkdir DockerTest # 設置工做路徑 WORKDIR /usr/local/src/DockerTest # 將當前文件夾下的全部文件所有複製到工做目錄 COPY *.* ./ # 向外界暴露5000端口 EXPOSE 5000 # 執行dotnet DockerWebAPI.dll命令 CMD ["dotnet", "DockerTest.dll"]
microsoft/dotnet:latest 是最新的包,打包後的鏡像文件可能有1G以上
microsoft/dotnet:2.1-aspnetcore-runtime 2.1的運行時包,比較小
其餘.net core 鏡像環境能夠本身去找blog
6.發佈到docker,紅字部分爲docker鏡像名稱
docker build -t dotnet/dockertest .
7.啓動鏡像
docker run -it -p 8080:5000 dotnet/dockertest
成功後以下圖所示
-----------------------------------------
附加:
錯誤1:
啓動鏡像時,*.deps.json缺乏
解決辦法:
項目文件csproj,添加配置
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
修改配置後從步驟4開始從新發布!