Docker在eShopOnContainer項目中的使用方法

http://www.javashuo.com/article/p-zcrxlppd-gs.htmlhtml

 

環境準備

  1. Win10(開啓Hyper-V)
  2. .NET Core SDK
  3. Docker for Windows
  4. VS2017 or VS Code
  5. Git
  6. SQL Server Management Studio(可選)
  7. Redis Desktop Manager(可選)
  8. Node.js(可選)
  9. Bower(可選)

Clone代碼到本地

執行命令git clone https://github.com/dotnet/eShopOnContainers.gitclone代碼到本地。使用默認DEV分支便可,該分支會保持最新改動,不要切換到其餘分支。node

git clone

環境設置

  1. 給Docker分配CPU和內存
    舒適提示:如下的配置是最低需求,不然不保證項目能正常運行!
    內存和CPU設置git

  2. 設置共享驅動器
    驅動器共享github

  3. 設置鏡像加速
    DaoCloud提供的鏡像加速地址http://f1361db2.m.daocloud.io加到"registry-mirrors"的數組裏,點擊 Apply 。
    鏡像加速redis

  4. 勾選試驗功能
    若是遇到這個報錯,Docker: 「no matching manifest for windows/amd64 in the manifest list entries」,就勾選下面這個參數。
    Experimental featuresdocker

  5. 防火牆設置
    打開代碼路徑,找到cli-windows\add-firewall-rules-for-sts-auth-thru-docker.ps1power shell腳本並執行,打開本地防火牆中的端口,以便對STS(Security Token Service container)進行身份驗證。
    eShopOnContainers 防火牆入站規則設置shell

構建並部署到本機Docker主機

進入eShopOnContainers根目錄,執行docker-compose build
構建數據庫

去喝幾杯咖啡或者打個盹吧,估計得好一會。完成後,執行docker image,能夠查看已經構建好的鏡像。
鏡像列表windows

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

接下來執行docker-compose up命令部署到本地Docker主機。
運行鏡像

啓動完成後,執行docker ps命令查看已啓動的容器列表。
運行中的容器列表

本地訪問http://localhost:5100/,便可打開MVC Web應用。以下圖所示:
MVC Web

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

一旦完成容器部署,就能夠從本地開發機器經過一下URL或鏈接字符串任何服務。

 

  • Web MVC: http://localhost:5100
  • Web Spa: http://localhost:5104 
  • Catalog microservice(產品目錄微服務): http://localhost:5101 (Not secured)
  • Ordering microservice(訂單微服務): http://localhost:5102 (Requires token for authorization)
  • Basket microservice(購物車微服務: http://localhost:5103 (Requires token for authorization)
  • Identity microservice(認證受權微服務): http://localhost:5105
  • Web Status(健康檢查): http://localhost:5107 
  • Orders database (訂單數據庫)(SQL Server connection string): Server=tcp:localhost,5432;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;
  • Catalog database (產品目錄數據庫)(SQL Server connection string): Server=tcp:localhost,5434;Database=CatalogDB;User Id=sa;Password=Pass@word
  • ASP.NET Identity database(身份數據庫) (SQL Server connection string): Server=localhost,5433;Database=aspnet-Microsoft.eShopOnContainers;User Id=sa;Password=Pass@word
  • Basket data(購物車數據) (Redis): listening at localhost:6379

其餘

PS:關於如何從外部鏈接SQL Server數據庫,使用:
Server:localhost,5433 (這裏是逗號,不是冒號!!!)
User:sa
Pwd:Pass@word
鏈接到容器內SQL Server數據庫

關注個人公衆號『微服務知多少』,咱們微信不見不散。 
閱罷此文,若是您以爲本文不錯並有所收穫,請【打賞】或【推薦】,也可【評論】留下您的問題或建議與我交流。 你的支持是我不斷創做和分享的不竭動力!
做者: 『聖傑』
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接,不然保留追究法律責任的權利。
相關文章
相關標籤/搜索