很久以前學過一段時間的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服務器上部署起來,再把整個流程錄成視頻~~~