BUILD, SHIP, RUN
Docker is the world’s leading software containerization platform
Docker的出現(xiàn)渊鞋,讓虛擬技術(shù)更上一個臺階。更有Docker Hub作為docker images的市場載體沼死,讓全世界分享你的成果议泵。
建議使用Docker for Mac(10.10.3) 或 Docker for Windows(10) , 拋棄舊的Docker Toolbox
我對docker的應(yīng)用有:
- 使用docker-compose封裝公司后端組開發(fā)所需要的環(huán)境街佑。
- 使用docker-compose封裝我的服務(wù)器需要運(yùn)行的各個應(yīng)用。
下面分別介紹用處,和優(yōu)勢
- 在團(tuán)隊開發(fā)中论笔,會遇到這樣一個問題:開發(fā)機(jī)器統(tǒng)一會用到一些必備的應(yīng)用碰辅,例如mongodb懂昂、mencached、redis等等没宾,那么如何維護(hù)項目所需的預(yù)裝軟件凌彬?傳統(tǒng)的方式是紀(jì)錄成文檔沸柔,然后有新人來的話就給他文檔,然后一個一個安裝铲敛。docker的出現(xiàn)茎杂,給應(yīng)用帶來了福音蛤袒,下面看如何用docker-compose解決上訴問題。
解決方案:通過一個文件(docker-compose.yml)描述組內(nèi)開發(fā)所需要的應(yīng)用,然后上傳git代碼管理却邓,有更新直接同步,有新同事來了或者一個新的機(jī)器要做成開發(fā)機(jī)辟躏,兩步走:
* 安裝docker和docker-compose
* 獲取描述文件适瓦,執(zhí)行命令
事例:
docker-compose.yml
version: '2'
services:
mongodb:
image: tutum/mongodb
ports:
- "27017:27017"
- "28017:28017"
environment:
- AUTH=no
container_name: mongodb
restart: always
memcached:
image: memcached
ports:
- "11211:11211"
container_name: memcached
restart: always
效果:只要運(yùn)行docker-compose up,就會自動安裝mongodb和memcached焙畔,并且會在機(jī)器重啟的時候自啟動掸读。
- 再舉一個docker-compose的例子,就是我自己的服務(wù)器的部署宏多,不需要害怕還服務(wù)器以后所有的東西都要重新安裝儿惫,只需要先安裝docker-compose,在運(yùn)行命令即可伸但!
docker-compose.yml
version: '2'
services:
homepage:
image: kelvv/nvmhome-docker:v1.1.5
ports:
- "0.0.0.0:3000:22"
- "0.0.0.0:81:3000"
- "0.0.0.0:3101:3100"
environment:
- NODE_ENV=staging
- projecturl=https://github.com/kelvv/my-site.git
- autoupdate=true
container_name: kelvv-homepage
restart: always
ppt:
image: kelvv/nvmhome-docker:v1.1.5
ports:
- "0.0.0.0:82:3000"
- "0.0.0.0:3102:3100"
environment:
- projecturl=https://github.com/kelvv/my-ppt.git
- autoupdate=true
container_name: kelvv-ppt
restart: always
效果:安裝完以后肾请,在服務(wù)器會安裝3個應(yīng)用
- 個人主頁
- 個人ppt源
總結(jié) :盡早使用docker,有好處