Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

快速上手 Windows Containers 容器技術 (Docker Taipei)

5.111 visualizaciones

Publicado el

本簡報是 Will 保哥 於 2016/11/19 在 Docker Global Mentor Week (Taipei Party) 的演講內容,幫助大家在短時間內快速上手 Windows Containers 容器技術!

活動網址: https://www.meetup.com/Docker-Taipei/events/234985809/

Announcing Docker Global Mentor Week 2016 - Docker Blog
https://blog.docker.com/2016/10/docker-global-mentor-week-2016/

Labs Manual:
https://gist.github.com/doggy8088/6389a0a110486aad409b184ec1331bec

Publicado en: Tecnología
  • Sé el primero en comentar

快速上手 Windows Containers 容器技術 (Docker Taipei)

  1. 1. 快速上手 Windows Containers 容器技術 適用 Windows Server 2016 Datacenter – with Containers 版本 多奇數位創意有限公司 技術總監 黃保翕 ( Will 保哥 ) 部落格:http://blog.miniasp.com/
  2. 2. Basic Concepts 基本觀念
  3. 3. 3 Docker: Build, Ship, Run • 分散式應用程式的開放平台! • 專為開發人員與系統管理人員而生!( DevOps )
  4. 4. 4 作業系統虛擬化 • Docker 實作輕量級的作業系統虛擬化解決方案!
  5. 5. 5 虛擬機器 與 容器 的比較 參考資料
  6. 6. 6 關於 Windows 容器 • 專為 Windows 平台所開發的 Container 技術 – 多個容器執行個體可以在一部主機上同時執行 – 透過命名空間、資源控制和程序隔離技術來提供容器隔離 • 在容器中執行的程式,在 Host 主機看的見在執行! • 容器執行個體會與 容器主機 共用相同的作業系統核心 • 容器管理方式 – PowerShell Cmdlet – Docker 命令 • 參考文章 – 使用 PowerShell 和 Docker 管理 Windows 容器的比較
  7. 7. 7 關於 Hyper-V 容器 • 為 Windows Container 技術增加容器的隔離性 – 多個容器執行個體可以在一部主機上同時執行 – 透過虛擬機器來提供容器隔離 • 每個容器皆執行於一個名為 vmwp 的 Hyper-V 虛擬機中 • 每個 Hyper-V 容器 與 容器主機 之間提供核心層級隔離 • 啟動方式 docker run -it --isolation=hyperv windowsservercore cmd • 參考文章 – Hyper-V 容器 / docker run reference
  8. 8. 8 使用容器技術的好處 - 開發人員體驗 • 縮短開發人員上手時間 – 快速建立與設定開發/測試環境 – 不同的專案有不同的設定,都可以事先準備好環境 • 提升開發人員工作效率 – 由於容器技術帶來應用程式隔離,無論你用什麼程式語 言、工具、或任何系統參數設定,都不會造成容器之間 互相影響,省去環境衝突帶來的困擾! • 抹除應用程式執行環境的不一致性 – 容器之間的隔離性可以徹底某除任何潛在的環境設定失 誤,並讓應用程式部署更加容易!
  9. 9. 9 使用容器技術的好處 - 軟體部署方面 • 容器技術可以讓你動態改變不同的設定、新增功能、 橫向延展服務,更能迅速的反應需求的變化! • 透過 微服務 (Micro-service) 架構,應用系統中不 同類型的服務都可透過容器技術進行分類與管理, 搭配適合的容器管理工具,就能做到動態資源分配 與分散式軟體部署的目的。
  10. 10. 在 AZURE 建立虛擬機器 Create a Windows Server 2016 VM on Microsoft Azure
  11. 11. 11 在 Azure Portal 建立虛擬機 • https://portal.azure.com/ – 新增資源 / 搜尋關鍵字 • Containers – 選取 Marketplace 項目 • Windows Server 2016 Datacenter – with Containers – 選取部署模型 • 資源管理員 – 建立虛擬機器 • 名 稱:WS2016RTM • 使用者名稱:will • 使用者密碼:Pa$$w0rd1234 (至少12個字元) • 資源群組名:DockerCon1119 • 位 置:東亞
  12. 12. 12 在 Azure Portal 搜尋虛擬機器範本
  13. 13. 13 透過遠端桌面連線(RDP)連接虛擬機器
  14. 14. 容器生命週期 Container Lifecycle
  15. 15. 15 從基礎容器影像建立容器 • 執行以下命令  docker run --name new1 -it microsoft/windowsservercore cmd • 參數說明  run 執行新的容器 (建立容器)  --name new1 指定新建立的容器名稱  -it 進入互動模式 (Interactive)  -i Keep STDIN open even if not attached  -t Allocate a pseudo-TTY  microsoft/windowsservercore 基礎影像名稱  cmd 在容器中執行的命令 • 其他備註 – 執行 exit 可退出容器執行個體且自動停止容器
  16. 16. 16 列出已建立的容器 • 列出正在執行中的容器 – docker ps • 列出所有容器 (包含目前沒有執行的容器) – docker ps -a
  17. 17. 17 管理容器的生命週期 • 列出所有容器 – docker ps -a • 啟動指定容器 (註: new1 為容器名稱 ) – docker start new1 • 在指定容器中執行命令 – docker exec -it new1 cmd • 停止指定容器 – docker stop new1 • 刪除指定容器 – docker rm new1
  18. 18. 列表、啟動、執行、停止、刪除容器
  19. 19. 建立 IIS 容器 Create an IIS Container
  20. 20. 20 直接從 Docker Hub 下載 IIS 容器影像 • https://hub.docker.com/ – 搜尋: iis – 下載: docker pull microsoft/iis
  21. 21. 21 建立 IIS 容器並設定 NAT 埠號對應 • 執行以下命令  docker run --name iis1 -d -p 8088:80 microsoft/iis  docker exec -it iis1 cmd • 參數說明  run 在一個新的容器中執行命令  --name iisbase 指定新建立的容器名稱  -d 進入 detach 模式 (背景執行模式)  -p 8088:80 設定主機埠號 8088 對應到容器的80埠號  microsoft/iis 基礎影像名稱 • 其他備註 – 執行 exit 可退出容器執行個體且自動停止容器
  22. 22. 22 查詢 Container 網路位址 ( IP ) • ipconfig • 用瀏覽器開啟 Container 中的 IIS 站台 http://172.22.36.132/
  23. 23. 23 設定網路安全性群組 (nsg)
  24. 24. 24 設定連入安全性規則
  25. 25. 25 設定連入安全性規則
  26. 26. 26 確認可從外網連入容器站台 • 先取得 Azure VM 的對外公開 IP 地址
  27. 27. 使用 DOCKERFILE 快速建置影像 Using Dockerfile to build container images
  28. 28. 28 建立 Dockerfile 定義檔 • 建立工作區 – C:Build • 建立 Dockerfile 定義檔 – C:BuildDockerfile • 編輯 Dockerfile 定義檔內容 FROM microsoft/iis RUN echo ^<h1^>Hello,^ Container!^</h1^> > c:inetpubwwwrootindex.html
  29. 29. 29 建置容器影像 • 執行以下命令  docker build -t iis c:build • 參數說明  build 建立容器影像  -t iis 指定容器影像的名稱 (t = tag)  c:Build 建置資料夾
  30. 30. 30 其他 Dockerfile 範例 • 建立 C:Build 工作區 • 複製網站檔案到 C:Buildwwwroot 目錄中 • 建立 C:BuildDockerfile 定義檔 – FROM microsoft/iis – ENV Inetpub C:Inetpubwwwroot – WORKDIR ${Inetpub} – ADD wwwroot $Inetpub • 建置容器影像 – docker build -t iis-mvc c:Build • 列出容器影像 – docker images • 建立容器 – docker run -d --name iis2 -p 8088:80 iis-mvc • 停止容器 & 刪除容器 – docker stop iis2 && docker rm iis2 && docker rmi iis-mvc Dockerfile reference
  31. 31. 31 透過 iis 容器影像建立新的容器 • 執行以下命令  docker run --name myiis –d -p 8088:80 iis  docker ps  docker stop myiis  docker rm myiis  docker rmi iis
  32. 32. 學習資源 Learning Resources
  33. 33. 33 常用 docker 命令 • docker ps 列出容器 • docker exec 在容器中執行程式 • docker run 建立容器 • docker commit 從 Container 建立容器影像 • docker build 從 Dockerfile 建立容器影像 • docker rm 刪除容器 • docker images 列出容器影像 • docker rmi 刪除容器影像 • docker save 匯出容器影像成 tar 檔 • docker load 將匯出的容器影像匯入
  34. 34. 34 常用 PowerShell 命令 • Web Server (IIS) Administration Cmdlets – Get-WebSite 列出站台 – New-Website 建立站台 – Start-Website 啟動站台 – Stop-Website 停止站台 • 安裝 Windows 功能角色 – Get-WindowsFeature – Install-WindowsFeature • 其他好用命令 – Expand-Archive – Invoke-WebRequest ( wget )
  35. 35. 35 相關連結 • Windows Containers Documentation (繁體中文版) – Containers Cmdlets – Windows Containers Quick Start - PowerShell – Windows Containers Quick Start – Docker – Application Compatability in Windows Containers • Containers: Docker, Windows and Trends – Container:Docker、Windows 以及趨勢 • MSDN Forums - Windows Containers • What is Docker?
  36. 36. 36 聯絡資訊 • The Will Will Web 記載著 Will 在網路世界的學習心得與技術分享 – http://blog.miniasp.com/ • Will 保哥的技術交流中心 (臉書粉絲專頁) – http://www.facebook.com/will.fans • Will 保哥的噗浪 – http://www.plurk.com/willh/invite • Will 保哥的推特 – https://twitter.com/Will_Huang

×