docker 基本操作可以看
http://www.itdecent.cn/p/c69a2a3b4c7a
linux上安裝可以看http://www.itdecent.cn/p/dc38b80727e4
查看系統(tǒng)版本
開始---運行---輸入winver

打開PowerShell

運行sconfig,選擇6 回車

選擇A更新所有

輸入以下命令安裝
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -Force
如果系統(tǒng)提示你安裝 NuGet 提供程序,請鍵入 Y 進行安裝。
PowerShell 詢問是否信任包源“DockerDefault”時,鍵入 A 以繼續(xù)進行安裝。

安裝過程可能會報錯
警告: Cannot verify the file SHA256. Deleting the file.
警告: C:\Users\AD[圖片上傳中...(image.png-a30232-1577693147705-0)]
MINI~1\AppData\Local\Temp\2\DockerMsftProvider\Docker-19-03-5.zip does not exist

解決方法:
定位到“C:\Users\ADMINI~1\AppData\Local\Temp\2\DockerMsftProvider”目錄,打開DockerDefault_DockerSearchIndex.json文件,搜索“Docker-19-03-1.zip”,找到下載路徑,手動下載

將下載好的文件,復(fù)制到“C:\Users\ADMINI~1\AppData\Local\Temp\2\DockerMsftProvider”目錄

然后運行命令:
Find-Package -ProviderName DockerMsftProvider | Install-Package -Verbose

安裝完成后重啟計算機
Restart-Computer -Force
發(fā)布.net
如果沒有dockerfile文件添加dockerfile文件

將發(fā)布后的代碼上傳到服務(wù)器

根據(jù)目錄下的Dockerfile創(chuàng)建鏡像:docker build -t dockerapitestimage . (注意,注意,注意后面有一個點“.”,這個點表示當前目錄上下文)

到這一步發(fā)現(xiàn)錯誤
a Windows version 10.0.17134-based image is incompatible with a 10.0.14393 host
查閱了很多資料,最有用的就是如下這兩個信息:
stackoverflow:https://stackoverflow.com/questions/54229367/dockers-image-and-host-are-incompatible
*windows 容器的兼容性:*****https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility****
意思是 基礎(chǔ)鏡像庫(FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1903 )不支持在Windows Server 2016(10.0.14393) 服務(wù)器上運行。 但是支持在Win 10(10.為。17134)電腦上運行。**
在Win 10電腦上用Docker環(huán)境上開發(fā)一個程序,而不能在自家的服務(wù)器Window Server 2016上運行。
解決方法:
換個匹配的鏡像
鏡像查找
https://hub.docker.com/_/microsoft-dotnet-core-aspnet/
dockerfile文件修改后代碼,用的是2.2的sdk,windows server2016
FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-sac2016 AS base
WORKDIR /app
EXPOSE 80
COPY . .
ENTRYPOINT ["dotnet", "webapi.dll"]
查看鏡像
docker images

運行容器
docker run --name dockerapitestimage -d -p 5089:80 dockerapitestimage
