BUILD, SHIP, RUN
Docker is the world’s leading software containerization platform
Docker的出現(xiàn),讓虛擬技術(shù)更上一個(gè)臺(tái)階。更有Docker Hub作為docker images的市場(chǎng)載體,讓全世界分享你的成果。
建議使用Docker for Mac(10.10.3) 或 Docker for Windows(10) , 拋棄舊的Docker Toolbox
我對(duì)docker的應(yīng)用有:
- 使用docker-compose封裝公司后端組開發(fā)所需要的環(huán)境。
- 使用docker-compose封裝我的服務(wù)器需要運(yùn)行的各個(gè)應(yīng)用。
下面分別介紹用處,和優(yōu)勢(shì)
- 在團(tuán)隊(duì)開發(fā)中,會(huì)遇到這樣一個(gè)問(wèn)題:開發(fā)機(jī)器統(tǒng)一會(huì)用到一些必備的應(yīng)用,例如mongodb、mencached、redis等等,那么如何維護(hù)項(xiàng)目所需的預(yù)裝軟件?傳統(tǒng)的方式是紀(jì)錄成文檔,然后有新人來(lái)的話就給他文檔,然后一個(gè)一個(gè)安裝。docker的出現(xiàn),給應(yīng)用帶來(lái)了福音,下面看如何用docker-compose解決上訴問(wèn)題。
解決方案:通過(guò)一個(gè)文件(docker-compose.yml)描述組內(nèi)開發(fā)所需要的應(yīng)用,然后上傳git代碼管理,有更新直接同步,有新同事來(lái)了或者一個(gè)新的機(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,就會(huì)自動(dòng)安裝mongodb和memcached,并且會(huì)在機(jī)器重啟的時(shí)候自啟動(dòng)。
- 再舉一個(gè)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ù)器會(huì)安裝3個(gè)應(yīng)用
- 個(gè)人主頁(yè)
- 個(gè)人ppt源
總結(jié) :盡早使用docker,有好處