Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

桃園市教育局Docker技術入門與實作

746 views

Published on

106年桃園市教育局Docker研習班 Day1

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

桃園市教育局Docker技術入門與實作

  1. 1. Philipz(鄭淳尹) 桃園市教育局 容器技術入門與實作研習班 Day1
  2. 2. Philipz (鄭淳尹) Docker.Taipei 共同發起人 歐萊禮《Docker 錦囊妙計》譯者 碁峰《Docker入門與實戰》、 《Kubernetes使用指南》審譯者 2014 COSCUP/iThome Summit 講者 2015 Microsoft Azure 開發者大會 講者 2016 COSCUP Docker 進階工作坊 2016 義守大學資工系 Docker 研習營
  3. 3. 今日課程 1. 虛擬化技術介紹 2. 虛擬機與容器的差異 3. 介紹 Docker 生態系相關工具 4. 容器生命週期 5. Linux 基本指令、Docker 基本指令 6. 動手操作 Docker Engine 7. 建置第一個 Docker image 8. 使用 Azure Linux App Service 部署
  4. 4. 0. Docker 和 Moby 之差異
  5. 5. 1. 虛擬化技術介紹
  6. 6. 虛擬化技術的歷史 ● IBM zOS ● 虛擬化軟體 - VMware, KVM, Xen, VirtualBox ● Hardware-assisted virtualization 硬體加速 ● Paravirtualization 半虛擬化 ● 作業系統層虛擬化 a. OpenVZ b. LXC c. Docker ● IaaS, PaaS, SaaS - Snapshot, Migration
  7. 7. IaaS, PaaS and SaaS
  8. 8. 虛擬化系統架構
  9. 9. 2.1 虛擬機與容器的差異
  10. 10. Containers vs. VMs Blog description
  11. 11. Blog description 特性 容器 虛擬機 啟動速度 秒級 分鐘級 性能 接近原生 較差 記憶體使用 很少 較多 硬碟使用 一般為MB 一般為GB 運行數量 單機支援上 千個容器 通常為幾十 個VMs 隔離性 安全隔離 完全隔離 遷移性 優異 一般 容器與虛擬機技術特性比較
  12. 12. Containers vs. VMs Blog description
  13. 13. The Martix of Hell
  14. 14. A Brief History of Containers 1979: Unix V7 2000: FreeBSD Jails 2005: Open VZ 2008: LXC 2013: LMCTFY 2013: Docker 2016: Windows Container From: A Brief History of Containers: From 1970s chroot to Docker 2016
  15. 15. Container Principle Real Container One Container One Customer One Commodity Software Container One Container One Process
  16. 16. Containers are not VMs Blog description
  17. 17. Adolf Hitler & Docker
  18. 18. 3. 介紹 Docker 生態系 相關工具
  19. 19. Docker Engine
  20. 20. Docker Tools
  21. 21. Docker Compose ● 一鍵完成多個容器 ● docker-compose.yml ● 支援 Docker Network ● 支援 Docker Volume ● 建構完整軟體服務 ○ 如:3-tier ● 快速建置測試模擬環境
  22. 22. Docker Machine ● 在多種平台上建立 VM ● 一套工具適用所有雲端平 台、虛擬化平台 ● 內建 Docker Engine ● 具備 SSH 功能 ● 輕易切換多個平台 ○ Docker API ● 只支援 Linux-based VM
  23. 23. Docker Swarm ● Docker Engine 內建功能 ● 容器叢集系統 ○ K8S、Mesos ● 大型容器運算平台 ● 內建分散式鍵值儲存功能 ● Manager-Node架構 ○ Overlay、Compose YML ● DNS-based 服務發現機制
  24. 24. Docker Registry ● Docker 映像檔儲存服務 ● 私有 Docker Hub ● 雲端平台提供代管服務 ○ Azure、AWS、GCP ● Tag 版本控管 ● 需第三方 OAuth 認證 ● 建議直接使用雲端代管服務
  25. 25. Docker Datacenter
  26. 26. 4. 容器生命週期
  27. 27. Docker 架構
  28. 28. Use Scenario Commit Push Pull Deploy
  29. 29. 5.1 Linux 基本指令
  30. 30. Microsoft Azure https://portal.azure.com/
  31. 31. 5.2 Docker 基本指令
  32. 32. Install Docker Install Docker on Ubuntu or curl -sSL https://get.docker.com/ | sh and docker run hello-world
  33. 33. Docker 管理用指令
  34. 34. Docker 映像檔指令
  35. 35. Docker 容器指令 (1/2) Ctrl-p Ctrl-q
  36. 36. Docker 容器指令 (2/2)
  37. 37. 2015-01-31 Study-Area Gitbook: Docker 從入門到實踐
  38. 38. 6. 動手操作 Docker Engine
  39. 39. Azure Firewall docker run -d -p 80:80 nginx docker run -ti --rm -p 80:80 nginx docker run -ti --rm -p 80:80 nginx bash
  40. 40. Docker 架構
  41. 41. Azure DNS Setting
  42. 42. 7. 建置第一個 Docker image
  43. 43. Docker Layers
  44. 44. 建立 Docker 映像檔方式 1. Docker commit 2. Dockerfile - docker build 3. Docker Hub auto-build 4. FROM scratch 5. Based on others, ubuntu, alpine... 範例: https://github.com/docker/labs/tree/master/beginn er/static-site docker save busybox > busybox.tar docker load < busybox.tar
  45. 45. Dockerfile 使用說明 相同目錄, docker build . docker build -f /other/folder/file . 附加 tag: docker build -t TAG_NAME . 範例: FROM debian:jessie MAINTAINER docker "docker@nginx.com" RUN apt-get update && apt-get install -y nginx CMD ["nginx", "-g", "daemon off;"] Healthcheck from 1.12
  46. 46. Dockerfile 撰寫原則 1. 必須命名為 “Dockerfile” 2. 可用 .dockerignore 檔案,類似 .gitignore 3. 盡量縮減映像檔資料層(layers) 4. 結合多行指令和參數,如:RUN 5. ADD 和 COPY差異,詳細說明 6. CMD 和 ENTRYPOINT 差異 7. ONBUILD 8. EXPOSE 和 USER 9. WORKDIR 和 ENV
  47. 47. 8. 使用 Azure Linux App Service 部署
  48. 48. Azure Web App on Linux
  49. 49. Use Docker image for Web AP
  50. 50. Azure PaaS 價格選型
  51. 51. Exercise & Self-learning 1. Docker Basic - Katacoda by Philipz 2. Docker Trainning 3. Docker Free self-paced courses 4. Docker Tutorials and Labs Online Self-learning Offical Online Lab Scalable Microservices with Kubernetes - Udacity
  52. 52. See You Tomorrow!

×