Docker Compose介紹: “應(yīng)用層”的服務(wù)
Docker Compose是Docker編排服務(wù)的***一塊,前面提到的 Machine可以讓用戶(hù)在其它平臺(tái)快速安裝Docker, Swarm可以讓Docker容器在集群中高效運(yùn)轉(zhuǎn),而Compose可以讓用戶(hù)在集群中部署分布式應(yīng)用。簡(jiǎn)單的說(shuō),Docker Compose屬于一個(gè)“應(yīng)用層”的服務(wù),用戶(hù)可以定義哪個(gè)容器組運(yùn)行哪個(gè)應(yīng)用,它支持動(dòng)態(tài)改變應(yīng)用,并在需要時(shí)擴(kuò)展。
Docker Compose介紹
使用Compose的***步是使用YAML文件來(lái)定義容器應(yīng)用的狀態(tài):
- containers:
- web:
- build: .
- command: python app.py
- ports:
- - "5000:5000"
- volumes:
- - .:/code
- links:
- - redis
- environment:
- - PYTHONUNBUFFERED=1
- redis:
- image: redis:latest
- command: redis-server --appendonly yes
上面的YAML文件定義了兩個(gè)容器應(yīng)用,***個(gè)容器運(yùn)行Python應(yīng)用,并通過(guò)當(dāng)前目錄的Dockerfile文件構(gòu)建。第二個(gè)容器是從Docker Hub注冊(cè)中心的Redis官方倉(cāng)庫(kù)中構(gòu)建。 links指令用來(lái)定義依賴(lài),意思是Python應(yīng)用依賴(lài)于Redis應(yīng)用。
定義完成后,通過(guò)下面的命令來(lái)啟動(dòng)應(yīng)用:
- % docker up
簡(jiǎn)單吧?通過(guò)YAML文件定義的容器應(yīng)用已經(jīng)成功啟動(dòng)起來(lái),啟動(dòng)過(guò)程會(huì)按照YAML的配置嚴(yán)格運(yùn)行。Python容器通過(guò)Dockerfile自動(dòng)構(gòu)建, 同時(shí)從注冊(cè)中心拉取Redis容器構(gòu)建。 links指令關(guān)注的是Python和Redis容器之間的依賴(lài)關(guān)系,Redis容器是***開(kāi)始構(gòu)建,緊隨其后的是Python容器。
Docker Compose應(yīng)用目前還在緊張開(kāi)發(fā)中,感興趣的讀者可以關(guān)注 GitHub動(dòng)態(tài)。