發表文章

Docker筆記(三)_Win10上docker的指令操作part1.查看系統訊息、版本、容器跟映像檔基礎指令

圖片
  查看docker 版號 docker -v C:\Users\535860>docker -v Docker version 19.03 .13 , build 4484c46d9d 查看docker 詳細版本資訊 docker version C:\Users\535860>docker version Client: Docker Engine - Community Cloud integration: 1.0 .2 Version: 19.03 .13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17 :00:27 2020 OS/Arch: windows/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03 .13 API version: 1.40 ( minimum version 1.12 ) Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17 :07:04 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: v1.3.7 GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175 runc: Version: 1.0 .0-rc10 GitCommit: dc9208a3303feef5b3839...

Docker筆記(二)_Win10上docker的安裝與執行_報錯處裡

圖片
  以windows為例 這邊我們會需要一個docker desktop,順便類比一下鏡像和容器之間差異。 比方在電腦上以數位形式儲存了一些照片。這個圖片檔被發送到打印機生成圖像的列印件。最終列印出來為實際可用來掛放的形式,而非數位圖像檔。 這裡,打印機代表 Docker Desktop,而列印件是容器,數字圖像則是 Docker 鏡像。 https://www.partech.nl/en/publications/2020/04/docker-series-part-2-of-4-docker-images-and-containers# 首先去docer官網下載安裝好後 Step1.先去參考win10 HyperV是否有弄好 https://docs.microsoft.com/zh-tw/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v Step2.開工作管理員,確認虛擬化有啟用。 若執行一些基本命玲 仍遇到問題出現以下錯誤 error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running. 參考一些處理 https://github.com/docker/for-win/issues/1825 法1. net stop com.docker.service net start com.docker.service 法2. C:\Program Files\Docker\Docker> ./DockerCli.exe -SwitchDaemon 後來重開機後就又正常了.... Ref: [Docker]...

Docker筆記(一)_容器和虛擬化的觀念

圖片
在軟體應用開發過程中,可能也會有需要前端跟後端各自能有獨立開發環境。 以往若大家都在同一個Server去跑程式做驗證或上線等,都極有可能 遇到資源被瓜分、或Server掛點等需要等待修復的繁雜問題。 有時甚至可能遇到有衝突的軟體卻又有需要並存的複雜問題。 各自用不同軟體開發但要整合在一塊 會有需要用到Docker的原因就在於說想去節省剛才講到的這段辛苦的配置安裝過程。 此外,也可避免 環境軟體衝突 導致每次都要重灌 (因為作業系統太髒 裝太多東西影響了 軟體相容性 等問題) 甚至可以把配置好的環境打包給他人共享,達到一次配置多人共用的Docker核心精神 (有點類似JAVA跨平台理念) 虛擬機 和 容器之間差異比較 Docker 是一套基於Linux系統發展出來的新時代虛擬容器技術 以往要在一台電腦上去跑其他OS的話,通常會需要安裝VirtualBox、VMware等軟體緊接著要自己去下載並安裝不OS(Guest OS)的映像檔案配置RAM、硬碟空間。 (備註:常見的VirtualBox、VMware就是Hypervisor當中的Type2種類) 事實上不管是docker或VM 在廣義的層面定義 都算是容器,或說都是一種虛擬技術。 VMs(Virtual Machines) 像是我們耳熟能詳的VMware Workstation,VirtualBox 虛擬化是用來模擬虛擬硬體建立一個沙盒環境(sandbox) 運作單位是以一個VM產生實體為單位,較站硬碟空間容量和資源。 Containers 其實不只有docker,可能還有containerd,podman其他容器工具喔 聚焦重點在於將程式碼、library和執行環境配置打包可執行的沙盒環境 沒有需要去虛擬化硬碟,因此效率優於VM的虛擬化。 可大量去複製輕量級的映象檔 若單一個應用程式有意常發生則可將可能問題範圍限縮在單一個特定容器,具有隔離性 容器廣義的定義 容器 (互不影響各自獨立的環境) 目的:使資源有效被利用、環境一致 特性:具有隔離性 成效:環境一致性、成本節省、系統可移植性高 虛擬化技術想解決的問題(早期) (作業系統)虛擬化技術基本上想去解決 實體電腦虛擬化,使硬體資源可分享的一種技術。 這是在早期所面對的課題,如今已發展成熟。 又有分成 1...

ASP.NET MVC第005天_Razor語法筆記(一)

圖片
 通常在cshtml   view 檢視的前端畫面中看到 @   at sign  就是Razor語法了 其跟以前在寫 asp.net webform中介紹到的 ASP.NET 學習5_資料綁定的方式 還有Active Server Page中<% .... %> 是類似的概念 用於把Server Side中的C#一些程式內嵌到html中的一種語法(Markup Syntax) 前端通過後端進行一些邏輯處裡資料綁定 Razor是一種語法而非語言 因為內在包括的是既有的html , C#(並非支援全部的C#指令) 都不算Razor本身獨有的變數、判斷式、Tag 由於Razor語法只能用於副檔名cshtml的View 所以.NET View也有Razor View(Page)之稱 註解 @*我是註解或欲註解掉內容*@ @符號輸出 <h1>@@</h1> @@ 正常情境中若是類似像mail格式夾在兩字串(不含html tag)之間沒關係 單一個印印出時候 只打<h1>@</h1> 或直接@ 會有問題 因為@對於Razor有特別含意所以不能直接挪用 @一句C#陳述式 表示單行程式敘述宣告 比如<p>目前時間:@DateTime.Now</p> @變數名稱 可以打印C#變數 @(陳述式 ) 可包一組C#運算式 @{....}多行程式敘述宣告 @{     一段Server Side程式可能夾雜html前端code } 複合夾雜後端邏輯跟前端程式的實際範例 @if(IsUploaded){   <p>上傳時間: @dateTime</p> }else{    <p>目前時間: @DateTime.Now</p> } @foreach迴圈 <ul>     @foreach(var servItem in Request.ServerVariables){     <li>@ servItem</li>} </ul> @: 若一段Razor 語法包起來的內容...

ASP.NET MVC第004天_路由的觀念解釋

圖片
 .NET MVC中路由一詞源自於路由器概念 主要負責網路中數據的傳輸路徑安排 在.net mvc中路由系統則是將各種URL請由轉交給控制器來進行安排處理 https://www.c-sharpcorner.com/UploadFile/ff2f08/routing-in-Asp-Net-mvc/ 用戶從Client端瀏覽器發起URL請求後背後透過MVC路由機制查找路由表 去找尋到對應的Controller做後續相應Action處理 https://www.tutorialsteacher.com/mvc/routing-in-mvc https://www.dotnetodyssey.com/asp-net-mvc-5-free-course/how-web-works-asp-net-mvc-fits-web-application-development/ .NET MVC 路由的一些重要叮嚀 1.路由名稱一定要是唯一不可重複,會報錯。 2.若有一組URL能在多個路由匹配時,預設會採用第一個匹配原則。 3.URL模式不允許連續的URL參數(大括號包起來) Q1.如何自訂路由? Ans:基本上要先回顧到我們怎麼透過MapRoute方法去定義路由匹配, 在該方法中主要參數組成如下圖表示,若是 不同的路由名稱(Route Name)即代表不同組的路由。 (PS:路由名稱一定要是唯一不可重複,會報錯。) 在route機制中controller 跟 action 屬於保留字 而自訂其他路由基本上就是同樣的call MapRoute然後更改name即可 預設空的MVC專案會產生這組路由 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MVC_RoutingTest { public class RouteConfig { public static void RegisterRoutes ( RouteCollection routes ) { ...