eShopOnContainers 看微服務 ②:配置 啓動

1、什麼是docker

Docker 是一個開源項目,經過把應用程序打包爲可移植的、自給自足的容器(能夠運行在雲端或本地)的方式,實現應用程序的自動化部署。docker

使用 Docker 的時候,須要建立一個應用或服務,而後把它和它的依賴打包到一個容器鏡像中。鏡像是應用或服務,以及它的配置和依賴的靜態表現形式。要運行應用和服務,這個應用的鏡像會被實例化,來建立一個容器,這個容器將會運行在 Docker 宿主機上。Docker公司 維護了一個公用的註冊表叫 Docker Hub,其餘提供商也爲不一樣的鏡像集合提供了各類註冊表。此外,企業能夠在本地建立一個私有的 註冊表,供企業內部的 Docker 鏡像來使用。 數據庫

這裏出現幾個名詞。windows

容器鏡像:一個包含了建立容器所需的全部依賴和信息的「包」。數組

容器:Docker 鏡像的一個實例。安全

註冊表(Registry):爲倉庫提供訪問服務。一個註冊表一般包含來自於多個團隊的倉庫。企業一般會建立私有的 註冊表來存儲和管理他們建立的鏡像。app

Docker Hub:一個公用的 註冊表。tcp

 

須要注意:Windows 鏡像只能運行在Windows 主機上,Linux 鏡像只能運行在 Linux 主機上。 微服務

 

2、環境設置測試

安裝docker咱們就不說了,網上不少介紹。咱們從配置開始

一、 給Docker分配CPU和內存

對硬件仍是有些要求的。spa

 

 2 、設置共享驅動器

這裏C盤是必須的,另外E盤是我存放eshop源代碼的盤,天然也要共享。

三、設置鏡像加速

咱們使用DaoCloud來作鏡像加速。官網https://www.daocloud.io

加速地址 http://f1361db2.m.daocloud.io加到"registry-mirrors"的數組裏,點擊 Apply 。

 

四、防火牆設置

  在本地防火牆中打開端口,以即可以經過STS(安全令牌服務容器,IP:10.0.75.1 )進行身份驗證,該IP爲Docker默認設置。Xamarin app或SPA app等客戶端也須要打開相應的防火牆端口。

  您能夠在本地防火牆中手動建立規則,也能夠經過執行解決方案的cli-windows目錄中提供的add-firewall-rules-for-sts-auth-thru-docker.ps1腳原本建立該規則。
  您須要經過在防火牆中建立一個IN-BOUND RULE來打開解決方案使用的端口5100到5110,以下面的屏幕截圖所示(對於Windows)。

  注意:經過PowerShell腳本設置防火牆規則時可能會由於Windows PowerShell® 默認執行策略未設置而報錯。具體參考:https://go.microsoft.com/fwlink/?LinkID=135170。

  能夠經過PowerShell執行"Set-ExecutionPolicy UNRESTRICTED -Scope CurrentUser"命令臨時容許腳本運行,運行完設置防火牆規則腳本後再經過「Set-ExecutionPolicy Undefined -Scope CurrentUser」還原默認設置。

  要查看當前執行策略設置可經過命令:「 Get-ExecutionPolicy -List」。

 

3、構建並部署到本機Docker主機

一、打開並運行eShopOnContainers解決方案

  若是隻進行服務端調試,打開「eShopOnContainers-ServicesAndWebApps.sln」解決方案,若是還須要調試移動App,打開「eShopOnContainers.sln」解決方案。

  將「docker-compose」設置爲默認啓動項目,按F5或者點運行。

  注意:因爲第一次運行Docker需從互聯網下載"SQL for Linux , Redis , ASPNET"等Docker鏡像,視網速可能須要等10分鐘左右。

二、查看已經構建好的鏡像。

 

注:你可能會看到不少爲 <none>的鏡像,這些是臨時鏡像,能夠經過命令 docker rmi $(docker images-f"dangling=true"-q)刪除。

三、測試全部應用程序和微服務

完成容器部署,測試訪問如下服務。 

容器正常部署運行後,可經過如下地址訪問任一應用或服務:

  • MVC網頁: http://localhost:5100

  • 單頁應用網頁: http://localhost:5104 (須要單獨安裝依賴並編譯才能正常運行)

  • 商品目錄微服務: http://localhost:5101 (不須要認證)

  • 訂單微服務: http://localhost:5102 (須要認證)

  • 購物車微服務: http://localhost:5103 (須要認證)

  • 認證微服務: http://localhost:5105

  • 訂單數據庫(SQL Server 鏈接字符串): Server=tcp:localhost,5432;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;

  • 商品目錄數據庫 (SQL Server 鏈接字符串): Server=tcp:localhost,5434;Database=CatalogDB;User Id=sa;Password=Pass@word

  • 認證數據庫 (SQL Server 鏈接字符串): Server=localhost,5433;Database=aspnet-Microsoft.eShopOnContainers;User Id=sa;Password=Pass@word

  • 購物車數據 (Redis): 監聽 localhost:6379

相關文章
相關標籤/搜索