?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
Looking for Compose file reference? Find the latest version here.
Compose是定義和運(yùn)行多容器Docker應(yīng)用程序的工具。使用Compose,您可以使用Compose文件來(lái)配置應(yīng)用程序的服務(wù)。然后,使用單個(gè)命令創(chuàng)建并啟動(dòng)配置中的所有服務(wù)。要詳細(xì)了解Compose的所有功能,請(qǐng)參閱功能列表。
Compose非常適合開(kāi)發(fā),測(cè)試和分段環(huán)境以及CI工作流程。您可以了解有關(guān)常見(jiàn)使用案例中每個(gè)案例的更多信息。
使用Compose基本上是一個(gè)三步過(guò)程。
用一個(gè)定義你的應(yīng)用程序的環(huán)境,Dockerfile
這樣它就可以在任何地方再現(xiàn)。
定義組成您的應(yīng)用程序的服務(wù),docker-compose.yml
以便它們可以在隔離的環(huán)境中一起運(yùn)行。
最后,運(yùn)行docker-compose up
和撰寫(xiě)將開(kāi)始并運(yùn)行您的整個(gè)應(yīng)用程序。
docker-compose.yml
看起來(lái)像這樣:
version: '3'services: web: build: . ports: - "5000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {}
有關(guān)撰寫(xiě)文件的更多信息,請(qǐng)參閱撰寫(xiě)文件參考。
Compose具有管理應(yīng)用程序整個(gè)生命周期的命令:
開(kāi)始,停止并重建服務(wù)
查看正在運(yùn)行的服務(wù)的狀態(tài)
流式傳輸運(yùn)行服務(wù)的日志輸出
在服務(wù)上運(yùn)行一次性命令
安裝Compose
入門(mén)
開(kāi)始使用Django
開(kāi)始使用Rails
開(kāi)始使用WordPress
經(jīng)常問(wèn)的問(wèn)題
命令行參考
撰寫(xiě)文件參考
使其有效的Compose功能包括:
單個(gè)主機(jī)上有多個(gè)獨(dú)立的環(huán)境
創(chuàng)建容器時(shí)保留卷數(shù)據(jù)
只重新創(chuàng)建已更改的容器
變量并在環(huán)境之間移動(dòng)合成
撰寫(xiě)使用項(xiàng)目名稱(chēng)來(lái)隔離彼此的環(huán)境。您可以在多個(gè)不同的環(huán)境中使用此項(xiàng)目名稱(chēng):
在開(kāi)發(fā)主機(jī)上創(chuàng)建單個(gè)環(huán)境的多個(gè)副本(例如,您希望為項(xiàng)目的每個(gè)功能分支運(yùn)行穩(wěn)定副本)
在CI服務(wù)器上,為了避免構(gòu)建互相干擾,可以將項(xiàng)目名稱(chēng)設(shè)置為唯一的內(nèi)部版本號(hào)
在共享主機(jī)或開(kāi)發(fā)主機(jī)上,以防止可能使用相同服務(wù)名稱(chēng)的不同項(xiàng)目相互干擾
默認(rèn)項(xiàng)目名稱(chēng)是項(xiàng)目目錄的基本名稱(chēng)。您可以使用-p
命令行選項(xiàng)或COMPOSE_PROJECT_NAME
環(huán)境變量設(shè)置自定義項(xiàng)目名稱(chēng)。
撰寫(xiě)會(huì)保留您的服務(wù)使用的所有卷。當(dāng)docker-compose up
運(yùn)行時(shí),如果發(fā)現(xiàn)任何集裝箱從之前的運(yùn)行,它會(huì)將從舊容器到新容器的體積。此過(guò)程可確保您在卷中創(chuàng)建的任何數(shù)據(jù)都不會(huì)丟失。
如果您docker-compose
在Windows機(jī)器上使用,請(qǐng)參閱環(huán)境變量并根據(jù)您的特定需求調(diào)整必要的環(huán)境變量。
組合緩存用于創(chuàng)建容器的配置。當(dāng)您重新啟動(dòng)未更改的服務(wù)時(shí),Compose將重新使用現(xiàn)有的容器。重復(fù)使用容器意味著您可以快速更改環(huán)境。
Compose支持Compose文件中的變量。您可以使用這些變量為不同的環(huán)境或不同的用戶(hù)自定義組合。有關(guān)更多詳情,請(qǐng)參閱變量替換
您可以使用該extends
字段或通過(guò)創(chuàng)建多個(gè)撰寫(xiě)文件來(lái)擴(kuò)展撰寫(xiě)文件。請(qǐng)參閱延伸了解更多細(xì)節(jié)。
撰寫(xiě)可用于許多不同的方式。下面概述了一些常見(jiàn)用例。
在開(kāi)發(fā)軟件時(shí),在孤立環(huán)境中運(yùn)行應(yīng)用程序并與其交互的能力至關(guān)重要。Compose命令行工具可用于創(chuàng)建環(huán)境并與之交互。
Compose文件提供了一種方式來(lái)記錄和配置所有應(yīng)用程序的服務(wù)依賴(lài)關(guān)系(數(shù)據(jù)庫(kù),隊(duì)列,緩存,Web服務(wù)API等)。使用Compose命令行工具,您可以使用單個(gè)命令(docker-compose up
)為每個(gè)依賴(lài)項(xiàng)創(chuàng)建和啟動(dòng)一個(gè)或多個(gè)容器。
總之,這些功能為開(kāi)發(fā)人員開(kāi)始項(xiàng)目提供了一種便捷方式。撰寫(xiě)可以減少多頁(yè)“開(kāi)發(fā)人員入門(mén)指南”到一個(gè)機(jī)器可讀的Compose文件和一些命令。
任何持續(xù)部署或持續(xù)集成過(guò)程的一個(gè)重要部分是自動(dòng)化測(cè)試套件。自動(dòng)化的端到端測(cè)試需要一個(gè)運(yùn)行測(cè)試的環(huán)境。Compose提供了一種創(chuàng)建和銷(xiāo)毀測(cè)試套件的獨(dú)立測(cè)試環(huán)境的便捷方式。通過(guò)在Compose文件中定義完整的環(huán)境,您可以通過(guò)幾條命令創(chuàng)建和銷(xiāo)毀這些環(huán)境:
$ docker-compose up -d $ ./run_tests $ docker-compose down
撰寫(xiě)傳統(tǒng)上一直專(zhuān)注于開(kāi)發(fā)和測(cè)試工作流程,但每次發(fā)布我們都在更多面向生產(chǎn)的功能方面取得進(jìn)展。您可以使用Compose部署到遠(yuǎn)程Docker引擎。Docker引擎可以是配備Docker Machine或整個(gè)Docker Swarm集群的單個(gè)實(shí)例。
有關(guān)使用面向生產(chǎn)功能的詳細(xì)信息,請(qǐng)參閱本文檔中的制作。
要查看過(guò)去和當(dāng)前版本的Docker Compose變更的詳細(xì)列表,請(qǐng)參閱CHANGELOG。
Docker Compose正在積極開(kāi)發(fā)中。如果您需要幫助,想要貢獻(xiàn),或者只是想與志趣相投的人討論這個(gè)項(xiàng)目,我們有許多開(kāi)放的溝通渠道。
要報(bào)告錯(cuò)誤或文件功能請(qǐng)求:請(qǐng)使用Github上的問(wèn)題跟蹤器。
與人們實(shí)時(shí)交流項(xiàng)目:請(qǐng)加入#docker-compose
freenode IRC頻道。
要提供代碼或文檔更改:請(qǐng)?jiān)贕ithub上提交請(qǐng)求。