SlideShare a Scribd company logo
1 of 28
Docker 淺入淺出
Miles 2016/8/10
About Me - Miles
PHP
Git
Docker
Rancher
DevOps
Agenda
Foreword
Introduction
Concept
Run Docker!
Foreword
研究 Docker 的起因
虛擬機每次要重新建置一樣的環境,需要很長的時間
虛擬機比較難模擬真實環境,因資源需求較高
承上,虛擬機執行的數量會受限於本機資源
環境一旦複雜,設定會很困難
Docker
Introdution
Docker 能做什麼事
Docker 怎麼辦到的
Introduction
虛擬機能做的,幾乎都能做得到
隔離應用
儲存再發佈
具備可攜性
環境即程式碼
Introduction
Introduction
Keywords
chroot
cgroups
LXC
Concept
Concept
映像檔 - Image (git log / Vagrant Box)
容器 - Container (staging / Running VM)
倉庫 - Repository (GitHub / VagrantCloud)
Concept
使用 Docker Container 很像虛擬機
虛擬 IP 、 Port Forwarding ….
管理 Docker Image 的觀念很像 Git
commit 、 pull 、 push ...
Concept
Image - PHP 7
Docker Hub
Concept
Image - PHP 7
Local Image - PHP 7
Docker Hub
Pull
Concept
Image - PHP 7
Container - 可寫層
Local Image - PHP 7
Docker Hub
唯讀
Pull
Concept
Image - PHP 7
Container - 可寫層
Local Image - PHP 7
Docker Hub
讀寫/執行
唯讀
Pull
Run Docker!
Installation
Linux 懶人安裝指令
curl -sSL https://get.docker.com/ | sh
Windows 10 和 Mac 也都能直接裝了 (since 1.12)
Commands
docker pull 下載映像檔
docker images 看目前有哪些映像檔
docker rmi 刪除映像檔
docker run 建立容器並執行指令
docker start/stop/restart 操作容器
docker ps 看目前有啟動哪些容器
docker rm 刪除容器
Command - Hello world
$ docker run -d nginx
$ docker run -d nginx:1.11-alpine
$ docker images
$ docker ps
$ docker stop
$ docker rm
Command - Port forwarding
$ docker run -d --name my-nginx -p 0.0.0.0:8080:80 nginx
$ docker stop my-nginx
$ docker rm -f my-nginx
--name: 容器名稱
-p: 設定連接埠,格式 [hostIP]:[hostPort]:[ContainerPort]
Command - Run PHP command
$ docker run --rm -it php php -v
--rm: 執行完指令就把容器刪除
-it: 開啟互動和終端機輸出,執行過程中有輸入就需要這兩個選項
php: 映像檔,沒有 tag 的話,預設會用 latest 最新版
php -v: 要在容器執行的命令
Command - Run local program
$ echo "<?php echo 'hello world'; ?>" > hw.php
$ docker run -v `pwd`:/var/www/html php php
/var/www/html/hw.php
-v: 掛載檔案到容器,參數格式 [/host]:[/container]
php /var/www/html/hw.php: 執行 php
Command - Environment
$ docker run -d -p 0.0.0.0:3306:3306 -e
MYSQL_ROOT_PASSWORD=password mysql
-e: 設定環境變數
Command - Link
$ docker run -d --name cache -d memcached
$ docker run -d --name my-nginx --link cache:c nginx
$ docker exec -it my-nginx bash
# apt-get install telnet
# telnet c 11211
--link: 連接到某個容器,格式 [容器名]:[別名]
Conclusion
Conclusion
Docker 可快速建立一個已定義好的環境
開發與測試非常適合使用
Q & A

More Related Content

What's hot

前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧Chu-Siang Lai
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探仲昀 王
 
Docker home ted
Docker home tedDocker home ted
Docker home tedLayne Peng
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Bo-Yi Wu
 
Docker初识
Docker初识Docker初识
Docker初识hubugui
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式Bo-Yi Wu
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018Will Huang
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽Will Huang
 
容器式軟體開發介紹
容器式軟體開發介紹容器式軟體開發介紹
容器式軟體開發介紹Philip Zheng
 
AWS EC2 for beginner
AWS EC2 for beginnerAWS EC2 for beginner
AWS EC2 for beginnerazole Lai
 
Introduction to Golang final
Introduction to Golang final Introduction to Golang final
Introduction to Golang final Paul Chao
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorialazole Lai
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養Philip Zheng
 
docker intro
docker introdocker intro
docker introkoji lin
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲ChinaNetCloud
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer TalkLarry Cai
 
Docker 最佳实践
Docker 最佳实践Docker 最佳实践
Docker 最佳实践YuLing Liu
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)Will Huang
 
微软Bot framework简介
微软Bot framework简介微软Bot framework简介
微软Bot framework简介Zhichao Liang
 

What's hot (20)

前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探
 
Docker home ted
Docker home tedDocker home ted
Docker home ted
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
Docker初识
Docker初识Docker初识
Docker初识
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
 
容器式軟體開發介紹
容器式軟體開發介紹容器式軟體開發介紹
容器式軟體開發介紹
 
AWS EC2 for beginner
AWS EC2 for beginnerAWS EC2 for beginner
AWS EC2 for beginner
 
Introduction to Golang final
Introduction to Golang final Introduction to Golang final
Introduction to Golang final
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
 
docker intro
docker introdocker intro
docker intro
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
 
Docker
DockerDocker
Docker
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
Docker 最佳实践
Docker 最佳实践Docker 最佳实践
Docker 最佳实践
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
 
微软Bot framework简介
微软Bot framework简介微软Bot framework简介
微软Bot framework简介
 

Similar to Docker 淺入淺出

桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作Philip Zheng
 
Docker workshop
Docker workshopDocker workshop
Docker workshopWei Tung
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShopPhilip Zheng
 
Docker
DockerDocker
DockerNCUDSC
 
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术团队
 
Docker open stack
Docker open stackDocker open stack
Docker open stackGuangya Liu
 
Docker In-Depth
Docker In-DepthDocker In-Depth
Docker In-DepthDavid Hsu
 
Azure Container Registry(preview)x Web App On Linux(preview)
Azure Container Registry(preview)x Web App On Linux(preview)Azure Container Registry(preview)x Web App On Linux(preview)
Azure Container Registry(preview)x Web App On Linux(preview)Ch Rick
 
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境俊明 吳
 
Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器升煌 黃
 
Docker技术介绍
Docker技术介绍Docker技术介绍
Docker技术介绍LI jeanphorn
 
Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Xu Wang
 
kubernetes入门培训
kubernetes入门培训kubernetes入门培训
kubernetes入门培训bobo45284
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 dockerRay Lin
 
Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Ch Rick
 
Hyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxHyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxXu Wang
 

Similar to Docker 淺入淺出 (20)

桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
 
Docker實務
Docker實務Docker實務
Docker實務
 
Docker
DockerDocker
Docker
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
 
Docker open stack
Docker open stackDocker open stack
Docker open stack
 
Docker In-Depth
Docker In-DepthDocker In-Depth
Docker In-Depth
 
Azure Container Registry(preview)x Web App On Linux(preview)
Azure Container Registry(preview)x Web App On Linux(preview)Azure Container Registry(preview)x Web App On Linux(preview)
Azure Container Registry(preview)x Web App On Linux(preview)
 
認識 Docker
認識 Docker認識 Docker
認識 Docker
 
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
 
Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器
 
Docker技术介绍
Docker技术介绍Docker技术介绍
Docker技术介绍
 
Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界
 
kubernetes入门培训
kubernetes入门培训kubernetes入门培训
kubernetes入门培训
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
 
Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器
 
Hyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxHyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptx
 

Docker 淺入淺出

Editor's Notes

  1. 資源消耗少、建立應用快、效能高