序
本教程需要有自己已經申請好的證書 ,沒有證書請參照官方教程。 Docker 就不多說了,咱只要知道怎么用先。
環境
core:asp net core 2.2
開發機:win10 LTS
服務器:window server 2019 (這里應該給我一頂原諒帽)
參考:Hosting ASP.NET Core Images with Docker over HTTPS 麻煩沒看懂的給我點個贊(ಥ_ಥ)
go
開發機:
1,創建一個aspnetcore項目
我這里起名叫 "zlyxm.DockerAspNetCoreHttps" (っ ̯ -。)
創建完成后會對docker環境檢查,這個不用管
2.生成docker映像?
等待完成生成
記住生成的鏡像名 zlyxmdockeraspnetcorehttps 第4步會用到
3.證書配置
在運行輸入“%USERPROFILE%\.aspnet\https\”打開證書存放目錄
將你的SSL證書放到這個目錄,這里證書名以“2761828_www.xxxxxxx.com.pfx” 為例 。
4,命令行運行docker
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="zlyxmpassword" -e ASPNETCORE_Kestrel__Certificates__Default__Path=\https\2761828_www.xxxxxxx.com.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ zlyxmdockeraspnetcorehttps
然后網頁打開 https://localhost:8001
在局域網內輸入你電腦IP+8001也可以訪問。(你電腦防火牆沒開的話)
也可以你自定義名稱,后面運行的命令里證書名改為你證書的名稱就行了
導出鏡像
在命令行中按Ctrl+C退出先,輸入
docker save -o D:\zlyxm.tar zlyxmdockeraspnetcorehttps
我這里保存文件位置是 "D:\zlyxm.tar" ,各位自己改
5,服務器部署
開發機運行正常就可以下一步,服務器部署了。
服務器必須環境:Docker for Windows Installer
將你的證書發送到服務器的目錄,這里我證書名為"2761828_www.xxxxxxx.com.pfx" ,放在服務器目錄是 "C:\Users\Administrator\Desktop\https"
dotnet-sdk-2.2.401-win-x64
(2)環境搭建
部署方法網上大多基於HUB,我們這里部署基於簡單開發機鏡像導出然后發送到服務器。
服務器搭建也可以按照來部署 https://blog.csdn.net/aqtata/article/details/83044616
將開發機導出的 .tar鏡像文件發送到服務器,服務器運行
docker load --input C:\Users\Administrator\Documents\U\zlyxm.tar
“C:\Users\Administrator\Documents\U\zlyxm.tar”目錄改為你文件路徑
(3)運行服務器
docker run --rm -it -p 80:80 -p 443:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="2761828_www.xxxxxxx.com.pfx" -e ASPNETCORE_Kestrel__Certificates__Default__Path=\https\2761828_yichude.com.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ zlyxmdockeraspnetcorehttps
打開瀏覽器
期間有一個大問題,各種 Access is denied ,可能是服務器對 C:\Users\Administrator\Desktop\https 沒有訪問權限,結果
各種查詢無果,死馬當活馬醫,添加了Everyone權限,我覺得分分鍾要被斃了。
趕緊運行,跑起來了!嚇得我趕緊再關掉Everyone權限,具體原因以后再深究。。
啊啊啊啊,不行了,排版完全亂了,不管,項目急着上趕緊溜
另聽說 docker -v 掛載文件是開發用的,鵝媽媽木木木,有大佬求留言告知生成環境正確的姿勢!!
+1 另,docker run --rm -it -p 一般是開發模式用的,這里僅做入門。
筆者也是剛入門docker 沒半個月,錯誤的地方肯定也很多,大家多指導!!