很久以前學過一段時間的docker,那時裝了電腦卡得受不了,學了一會就解除安裝了,最近電腦又裝上了docker,感覺好像沒有以前這麼卡了,還是同一台電腦surface pro4, 試了一下visual studio中做的網站運作在docker上,下面是一些簡記
環境:win10 + docker desktop + visual studio 2017 + mysql , 其中MYSQL是安裝在c:/mysql 裡的
打開visual studio 網站項目,在Niunan.Blog.Web項目上右鍵添加doker支援,選linux 支援, 會生成Dockerfile檔案
直接點那個綠三角圖示運作,結果等了好久好久,卡在那個界面上

原來是docker正在下載下傳底層的包的,會很慢很慢,可以先停掉VS。然後在cmd指令行下運作
docker pull microsoft/dotnet:2.2-aspnetcore-runtime
和
docker pull microsoft/dotnet:2.2-sdk
然後再點綠三角圖示運作,運作成功了,彈出浏覽器了,不過顯示不了
後來發現是我Program.cs代碼裡用了useurl了,因為之前我是做了N個網站,都部署在一台linux伺服器上的,是以給每個網站都配置設定了一個自定義的端口的,DOCKER運作的時候又自動配置設定了一個32768端口,可能沖突了吧,把這一行注釋掉,運作就正常了
運作界面顯示正常了,但是在連接配接資料庫的時候又出錯了
資料庫連接配接字元串是 localhost 的,這個在docker裡連接配接不了的,必須得寫成本地的IP位址,如192.168.0.110, 可從cmd視窗裡用ipconfig檢視
然後可以先在本地打開sqlyog,用192.168.0.110連接配接看看能不能連接配接上資料庫,不能的話還得改那個mysql資料庫裡的users表裡的root使用者的localhost改為%,
然後再試就可以用192.168.0.110連接配接上資料庫了
改好項目裡的資料庫連接配接字元串,再運作docker項目,界面顯示出來了,資料庫也連接配接上了,yeah~~
後續計劃,把本地docker那個網站的鏡像導出成zip,再傳到linux伺服器上用docker運作,再伺服器上用nginx轉發綁定不同的域名,在浏覽器裡測試
然後配置vs插件antdeploy插件,能夠直接在VS裡釋出鏡像并自動上傳到linux伺服器上部署起來,再把整個流程錄成視訊~~~