Compose 是一個用于定義并運行多容器Docker應用的工具码俩。先通過一個compose文件來配置你的應用服務,然后用一個簡單的命令就可以創(chuàng)建并啟動所有的應用服務了歼捏。
Compose的特性:
- 單主機多個隔離環(huán)境
Compose 使用項目名稱來隔離各個環(huán)境握玛。在不同的應用場景中使用這個特性:- 在開發(fā)機上,可以創(chuàng)建同一個環(huán)境的不同副本
- 在CI服務器上甫菠,可以設置項目名為一個唯一的build ID挠铲,從而避免build時互相干擾
- 在一個共享主機或開發(fā)機上,可能會存在相同服務名稱的應用寂诱,通過這個特性可以避免互相干擾
默認的項目名稱是項目目錄的目錄名拂苹,可以通過-p
命令行選項或者COMPOSE_PROJECT_NAME
指定。
- 保存容器創(chuàng)建時使用的卷(volumn)數據
- 只重新創(chuàng)建已更改的容器
Compose會緩存用于創(chuàng)建容器的配置,當重啟一個未曾更改過的服務時瓢棒,Compose會重用已存在的容器浴韭。這意味著你可以很快地改變你的環(huán)境。 - 支持變量脯宿,在不同的環(huán)境間定義不同的組合
使用Compose 基本上分為三個步驟
- 創(chuàng)建Compose file(docker-compose.yml)念颈,定義的你應用環(huán)境
- 定義組成你應用的所有服務
- 運行命令
docker-compose up
一個docker-compose.yml
文件示例如下:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
Compose的命令貫穿你應用的整個生命周期:
- 啟動、停止连霉、重建服務
- 查看運行中服務的狀態(tài)
- 運行中服務的日志輸出流
- 在一個服務上執(zhí)行一次性命令