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