SlideShare a Scribd company logo
Philipz(鄭淳尹)
桃園市教育局
容器技術入門與實作研習班
Day1
Philipz (鄭淳尹)
Docker.Taipei 共同發起人
歐萊禮《Docker 錦囊妙計》譯者
碁峰《Docker入門與實戰》、
《Kubernetes使用指南》審譯者
2014 COSCUP/iThome Summit 講者
2015 Microsoft Azure 開發者大會 講者
2016 COSCUP Docker 進階工作坊
2016 義守大學資工系 Docker 研習營
今日課程
1. 虛擬化技術介紹
2. 虛擬機與容器的差異
3. 介紹 Docker 生態系相關工具
4. 容器生命週期
5. Linux 基本指令、Docker 基本指令
6. 動手操作 Docker Engine
7. 建置第一個 Docker image
8. 使用 Azure Linux App Service 部署
0. Docker 和 Moby 之差異
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
1. 虛擬化技術介紹
虛擬化技術的歷史
● IBM zOS
● 虛擬化軟體 - VMware, KVM, Xen, VirtualBox
● Hardware-assisted virtualization 硬體加速
● Paravirtualization 半虛擬化
● 作業系統層虛擬化
a. OpenVZ
b. LXC
c. Docker
● IaaS, PaaS, SaaS - Snapshot, Migration
IaaS, PaaS and SaaS
虛擬化系統架構
2.1 虛擬機與容器的差異
Containers vs. VMs
Blog description
Blog description
特性 容器 虛擬機
啟動速度 秒級 分鐘級
性能 接近原生 較差
記憶體使用 很少 較多
硬碟使用 一般為MB 一般為GB
運行數量 單機支援上
千個容器
通常為幾十
個VMs
隔離性 安全隔離 完全隔離
遷移性 優異 一般
容器與虛擬機技術特性比較
Containers vs. VMs
Blog description
桃園市教育局Docker技術入門與實作
The Martix of Hell
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
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
Container Principle
Real Container
One Container
One Customer
One Commodity
Software Container
One Container
One Process
Containers are not VMs
Blog description
Adolf Hitler & Docker
3. 介紹 Docker 生態系
相關工具
Docker Engine
桃園市教育局Docker技術入門與實作
Docker Tools
Docker Compose
● 一鍵完成多個容器
● docker-compose.yml
● 支援 Docker Network
● 支援 Docker Volume
● 建構完整軟體服務
○ 如:3-tier
● 快速建置測試模擬環境
Docker Machine
● 在多種平台上建立 VM
● 一套工具適用所有雲端平
台、虛擬化平台
● 內建 Docker Engine
● 具備 SSH 功能
● 輕易切換多個平台
○ Docker API
● 只支援 Linux-based VM
Docker Swarm
● Docker Engine 內建功能
● 容器叢集系統
○ K8S、Mesos
● 大型容器運算平台
● 內建分散式鍵值儲存功能
● Manager-Node架構
○ Overlay、Compose YML
● DNS-based 服務發現機制
Docker Registry
● Docker 映像檔儲存服務
● 私有 Docker Hub
● 雲端平台提供代管服務
○ Azure、AWS、GCP
● Tag 版本控管
● 需第三方 OAuth 認證
● 建議直接使用雲端代管服務
Docker Datacenter
4. 容器生命週期
Docker 架構
Use Scenario
Commit
Push
Pull
Deploy
5.1 Linux 基本指令
Microsoft Azure
https://portal.azure.com/
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
5.2 Docker 基本指令
Install Docker
Install Docker on Ubuntu
or
curl -sSL https://get.docker.com/ | sh
and
docker run hello-world
Docker 管理用指令
Docker 映像檔指令
Docker 容器指令 (1/2)
Ctrl-p Ctrl-q
Docker 容器指令 (2/2)
2015-01-31 Study-Area
Gitbook: Docker 從入門到實踐
6. 動手操作
Docker Engine
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
Docker 架構
Azure DNS Setting
7. 建置第一個
Docker image
Docker Layers
建立 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
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
Dockerfile 撰寫原則
1. 必須命名為 “Dockerfile”
2. 可用 .dockerignore 檔案,類似 .gitignore
3. 盡量縮減映像檔資料層(layers)
4. 結合多行指令和參數,如:RUN
5. ADD 和 COPY差異,詳細說明
6. CMD 和 ENTRYPOINT 差異
7. ONBUILD
8. EXPOSE 和 USER
9. WORKDIR 和 ENV
8. 使用 Azure Linux App
Service 部署
Azure Web App on Linux
Use Docker image for Web AP
Azure PaaS 價格選型
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
See You Tomorrow!

More Related Content

PDF
十二項架構設計原則
PDF
A brief introduction to Machine Learning
PPTX
省メモリーに関するデザインパターン 2011.04.18
PPTX
微服務的基礎建設 - Service Discovery, Andrew Wu
PDF
PG-REXで学ぶPacemaker運用の実例
PPTX
Spanner移行について本気出して考えてみた
PDF
PostgreSQLでスケールアウト
PDF
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
十二項架構設計原則
A brief introduction to Machine Learning
省メモリーに関するデザインパターン 2011.04.18
微服務的基礎建設 - Service Discovery, Andrew Wu
PG-REXで学ぶPacemaker運用の実例
Spanner移行について本気出して考えてみた
PostgreSQLでスケールアウト
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021

What's hot (20)

PDF
忙しい人の5分で分かるDocker 2017年春Ver
PDF
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
PPTX
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
PDF
91APP: 從 "零" 開始的 DevOps
PDF
MHA for MySQLとDeNAのオープンソースの話
PDF
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
PPTX
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
TLS 1.3 と 0-RTT のこわ〜い話
PDF
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
PDF
PostgreSQLによるデータ分析ことはじめ
PDF
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
PDF
Flyway使いたい
PDF
[JJUG CCC 2021 Spring]Eclipse ユーザのための VSCode のススメ
PDF
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
PDF
View customize plugin for Redmineの紹介 (2019年版)
PDF
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
PDF
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
忙しい人の5分で分かるDocker 2017年春Ver
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
91APP: 從 "零" 開始的 DevOps
MHA for MySQLとDeNAのオープンソースの話
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Javaはどのように動くのか~スライドでわかるJVMの仕組み
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
TLS 1.3 と 0-RTT のこわ〜い話
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
PostgreSQLによるデータ分析ことはじめ
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
Flyway使いたい
[JJUG CCC 2021 Spring]Eclipse ユーザのための VSCode のススメ
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Jenkins x Kubernetesが簡単だと思ったら大変だった話
View customize plugin for Redmineの紹介 (2019年版)
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Ad

Viewers also liked (20)

PDF
Docker研習營
PDF
Docker + CI pipeline 的高效率 ChatBot 開發方法
PDF
TradingBot of Maker Faire
PDF
時代在變 Docker 要會:台北 Docker 一日入門篇
PDF
程式交易經驗分享系列(1) 程式交易簡介及條件
PDF
企業導入容器經驗分享與開源技能培養
PDF
手把手帶你學 Docker 入門篇
PDF
What's Wrong With Deep Learning?
PDF
Fusion tables
PDF
Docker 進階實務班
PDF
程式交易面面觀
PDF
Docker For Dummies
PDF
人工智能在量化投资分析中的实践
PDF
容器與IoT端點應用
PDF
桃園市教育局Docker技術入門與實作
PDF
認識程式交易
PDF
Docker all the things
PDF
Trading bot演算法與軟工在程式交易上的實踐
PDF
容器與資料科學應用
PDF
理財機器人技術簡介與實作經驗分享
Docker研習營
Docker + CI pipeline 的高效率 ChatBot 開發方法
TradingBot of Maker Faire
時代在變 Docker 要會:台北 Docker 一日入門篇
程式交易經驗分享系列(1) 程式交易簡介及條件
企業導入容器經驗分享與開源技能培養
手把手帶你學 Docker 入門篇
What's Wrong With Deep Learning?
Fusion tables
Docker 進階實務班
程式交易面面觀
Docker For Dummies
人工智能在量化投资分析中的实践
容器與IoT端點應用
桃園市教育局Docker技術入門與實作
認識程式交易
Docker all the things
Trading bot演算法與軟工在程式交易上的實踐
容器與資料科學應用
理財機器人技術簡介與實作經驗分享
Ad

Similar to 桃園市教育局Docker技術入門與實作 (20)

PDF
Docker容器微服務 x WorkShop
PDF
讓軟體開發與應用更自由 - 使用 Docker 技術
PPTX
快速上手 Windows Containers 容器技術 (Docker Taipei)
PPTX
Docker 基礎介紹與實戰
PPTX
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
PDF
Docker Build
PPTX
Docker - 30秒生出100台伺服器
PPTX
Docker基礎
PPTX
Docker 101
PPTX
Docker workshop
PPTX
Docker實務
PDF
前端工程師一定要知道的 Docker 虛擬化容器技巧
PPTX
開發人員不可不知的 Windows Container 容器技術預覽
PPTX
Docker 淺入淺出
PPTX
Introduction to Docker
PPTX
Docker
PDF
docker intro
PDF
從軟體開發角度
談 Docker 的應用
PDF
Docker
PPTX
Docker tutorial
Docker容器微服務 x WorkShop
讓軟體開發與應用更自由 - 使用 Docker 技術
快速上手 Windows Containers 容器技術 (Docker Taipei)
Docker 基礎介紹與實戰
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Docker Build
Docker - 30秒生出100台伺服器
Docker基礎
Docker 101
Docker workshop
Docker實務
前端工程師一定要知道的 Docker 虛擬化容器技巧
開發人員不可不知的 Windows Container 容器技術預覽
Docker 淺入淺出
Introduction to Docker
Docker
docker intro
從軟體開發角度
談 Docker 的應用
Docker
Docker tutorial

More from Philip Zheng (16)

PDF
AI Coding工具介紹 - 革新程式開發流程的智能助手 by Philipz
PDF
Solo Leveling with Cursor by Philipz 鄭淳尹
PDF
從零開始做架構圖
PDF
VSCode Remote Development 介紹
PDF
VSCode Remote Development
PPTX
K8s removes dockershime
PPTX
Apahce Ignite
PDF
Cloud Native Practice
PDF
微服務對IT人員的衝擊
PDF
容器式高效率 ChatBot 開發方法
PDF
理財機器人技術簡介與實作經驗分享
PDF
容器與 Gitlab CI 應用
PDF
程式交易介紹及 FinTech 創作分享
PDF
容器式軟體開發介紹
PDF
容器式基礎架構介紹
PDF
Docker & GitLab
AI Coding工具介紹 - 革新程式開發流程的智能助手 by Philipz
Solo Leveling with Cursor by Philipz 鄭淳尹
從零開始做架構圖
VSCode Remote Development 介紹
VSCode Remote Development
K8s removes dockershime
Apahce Ignite
Cloud Native Practice
微服務對IT人員的衝擊
容器式高效率 ChatBot 開發方法
理財機器人技術簡介與實作經驗分享
容器與 Gitlab CI 應用
程式交易介紹及 FinTech 創作分享
容器式軟體開發介紹
容器式基礎架構介紹
Docker & GitLab

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