docker 123

21
丁智 Wei-Chih Ting [email protected] 2015-05-07 Docker 123

Upload: weichih-ting

Post on 04-Aug-2015

225 views

Category:

Software


1 download

TRANSCRIPT

丁⾱韋智 Wei-Chih Ting [email protected]

2015-05-07

Docker 123

Docker = Image + Git 將開發環境整包⽤用Git來管理

https://www.docker.com/

Docker 各平台⽀支援• Linux

• ⽀支援度⾼高, 可以原⽣生⽅方式執⾏行

• Windows

• 需透過boot2docker (Virtual box+預設VM) 但仍有許多問題

• Mac

• 需透過boot2docker (Virtual box+預設VM) 已經蠻穩定

原⽣生

boot2docker

https://docs.docker.com/installation/mac/

Docker on Mac• Kitematic是最⽅方便的GUI⼯工具

• Docker剛併購Kitematic

⼩小試⾝身⼿手

A simple walkthrough on Mac>boot2docker init

>boot2docker start

提⽰示你要export⼀一些變數可⼿手動輸⼊入或是⽤用

>eval "$(boot2docker shellinit)" 取代

>docker run <image代號>

類似git pull + run image

可以是本地的image代號或是遠端docker hub代號

以上只有Mac需要

Linux直接從這開始

A simple walkthrough on Mac>docker ps

查看⺫⽬目前有哪些container正在跑

>docker images

查看本地有哪些images,含下載

>docker kill <container>

不要問我什麼是kill

重要觀念• ⼀一台實體機器可以跑很多

container, 跟VM⼀一樣, 但是以原⽣生⽅方式跑會⽐比較快(on Linux)

• docker必須要有⼀一個主要process確保container在執⾏行

• hello-world執⾏行後⾺馬上停⽌止, docker ps沒東⻄西?!

>docker run -d -p 80:80 shooding/web_server /root/myscript.sh-p 可以對應多個port, 不要擔⼼心

A simple walkthrough on Mac>docker attach <container>

bash登⼊入⼀一個正在跑的container

>docker commit -m ‘修正錯誤’ <container> shooding/web_server

類似git commit操作

>docker push shooding/web_server

類似git push操作

版本管理 「站在巨⼈人的肩膀上。」- Issac Newton

Docker Hub

• 提供類似GitHub的託管服務

• 1個private專案免費, 第⼆二個以上收費

• Open source專案⼀一律免費

• 如果不想付錢, Docker registry可以⾃自⼰己架設私有倉庫

All native apps, no need to porting

Coders

重要觀念

• 有些官⽅方的image是base image, 讓別⼈人做image⽤用的, 因此沒有主要process可執⾏行

Docker可幫助 開發+測試+維運整合

開發環境• 本地端⼀一台筆電可執⾏行多個container

• 建⽴立load balancing tier、app tier、cache tier、DB tier、cluster of processing farm模擬雲端的Best practice

• commit新功能、Hot fix

測試環境• 本地端⼀一台筆電可執⾏行多個

container

• 半⿊黑箱測試, 不同tier分開測試.

• 從DockerHub拉取指定版本進⾏行測試, 無須進⾏行apt-get等安裝套件步驟.

• 可Nightly build整套後端進⾏行測試, 逐漸達成軟體持續整合

Production環境 with public clouds

主流雲端全⾯面擁抱Docker

>docker-machine create -d <any cloud> my-container

docker-machine是新的「延伸⼯工具」可快速佈署⾄至雲端

• Amazon Web Services • Digital Ocean • Google Compute Engine • IBM Softlayer • Microsoft Azure • Microsoft Hyper-V • Openstack • Rackspace • Oracle VirtualBox • VMware Fusion • VMware vCloud Air • VMware vSphere

還沒涵蓋的主題

• Dockerfile • Docker x Vagrant • Docker x Jenkins • Docker x Heroku

丁⾱韋智 Wei-Chih Ting [email protected]

2015-05-07

Thank you