學(xué)習(xí)完整課程請(qǐng)移步 互聯(lián)網(wǎng) Java 全棧工程師
Docker Compose
是 Docker 官方編排(Orchestration)項(xiàng)目之一鬼贱,負(fù)責(zé)快速的部署分布式應(yīng)用萎津。
本節(jié)視頻
概述
Compose
項(xiàng)目是 Docker 官方的開源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì) Docker 容器集群的快速編排。從功能上看行嗤,跟 OpenStack
中的 Heat
十分類似。
其代碼目前在 https://github.com/docker/compose 上開源描姚。
Compose
定位是 「定義和運(yùn)行多個(gè) Docker 容器的應(yīng)用(Defining and running multi-container Docker applications)」涩赢,其前身是開源項(xiàng)目 Fig。
通過第一部分中的介紹轩勘,我們知道使用一個(gè) Dockerfile
模板文件筒扒,可以讓用戶很方便的定義一個(gè)單獨(dú)的應(yīng)用容器。然而绊寻,在日常工作中花墩,經(jīng)常會(huì)碰到需要多個(gè)容器相互配合來完成某項(xiàng)任務(wù)的情況。例如要實(shí)現(xiàn)一個(gè) Web 項(xiàng)目澄步,除了 Web 服務(wù)容器本身冰蘑,往往還需要再加上后端的數(shù)據(jù)庫服務(wù)容器,甚至還包括負(fù)載均衡容器等村缸。
Compose
恰好滿足了這樣的需求祠肥。它允許用戶通過一個(gè)單獨(dú)的 docker-compose.yml
模板文件(YAML 格式)來定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目(project)。
Compose
中有兩個(gè)重要的概念:
- 服務(wù) (
service
):一個(gè)應(yīng)用的容器梯皿,實(shí)際上可以包括若干運(yùn)行相同鏡像的容器實(shí)例仇箱。 - 項(xiàng)目 (
project
):由一組關(guān)聯(lián)的應(yīng)用容器組成的一個(gè)完整業(yè)務(wù)單元,在docker-compose.yml
文件中定義索烹。
Compose
的默認(rèn)管理對(duì)象是項(xiàng)目工碾,通過子命令對(duì)項(xiàng)目中的一組容器進(jìn)行便捷地生命周期管理。
Compose
項(xiàng)目由 Python 編寫百姓,實(shí)現(xiàn)上調(diào)用了 Docker 服務(wù)提供的 API 來對(duì)容器進(jìn)行管理。因此况木,只要所操作的平臺(tái)支持 Docker API垒拢,就可以在其上利用 Compose
來進(jìn)行編排管理。