?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
當(dāng)您在開發(fā)中使用 Compose 定義應(yīng)用程序時(shí),可以使用此定義在不同的環(huán)境中運(yùn)行應(yīng)用程序,如 CI,分段和生產(chǎn)。
部署應(yīng)用程序的最簡(jiǎn)單方法是在單個(gè)服務(wù)器上運(yùn)行它,這與運(yùn)行開發(fā)環(huán)境的方式類似。如果要擴(kuò)展應(yīng)用程序,可以在 Swarm 群集上運(yùn)行 Compose 應(yīng)用程序。
您幾乎可以肯定地希望對(duì)適用于實(shí)時(shí)環(huán)境的應(yīng)用配置進(jìn)行更改。這些更改可能包括:
刪除應(yīng)用程序代碼的任何卷綁定,以便代碼保留在容器內(nèi),不能從外部更改
綁定到主機(jī)上的不同端口
以不同的方式設(shè)置環(huán)境變量(例如,減少記錄的詳細(xì)程度或啟用電子郵件發(fā)送)
指定重啟策略(例如,restart: always
)以避免停機(jī)
添加額外的服務(wù)(例如,日志聚合器)
出于這個(gè)原因,你可能會(huì)想要定義一個(gè)額外的 Compose 文件,比如說production.yml
,它指定了適合生產(chǎn)的配置。此配置文件只需包含您想要從原始撰寫文件中進(jìn)行的更改。額外的撰寫文件可以應(yīng)用于原始文件docker-compose.yml
以創(chuàng)建新配置。
一旦你有第二個(gè)配置文件,告訴 Compose 使用它的-f
選項(xiàng):
docker-compose -f docker-compose.yml -f production.yml up -d
有關(guān)更完整的示例,請(qǐng)參閱使用多個(gè)撰寫文件。
當(dāng)您對(duì)應(yīng)用程序代碼進(jìn)行更改時(shí),您將需要重建圖像并重新創(chuàng)建應(yīng)用程序的容器。若要重新部署名為web
,你會(huì)用:
$ docker-compose build web $ docker-compose up --no-deps -d web
這將首先重建圖像web
,然后停止,銷毀,并重新創(chuàng)建剛的web
服務(wù)。--no-deps
標(biāo)志防止撰寫也重新創(chuàng)建任何web
依賴的服務(wù)。
您可以使用撰寫通過設(shè)置來(lái)部署一個(gè)應(yīng)用程序到遠(yuǎn)程主機(jī)的碼頭工人DOCKER_HOST
,DOCKER_TLS_VERIFY
和DOCKER_CERT_PATH
適當(dāng)?shù)沫h(huán)境變量。對(duì)于這樣的任務(wù),Docker Machine 使得管理本地和遠(yuǎn)程 Docker 主機(jī)變得非常簡(jiǎn)單,即使您不是遠(yuǎn)程部署,也是推薦的。
一旦你設(shè)置了你的環(huán)境變量,所有正常的docker-compose
命令都可以在沒有進(jìn)一步配置的情況下工作。
Docker Swarm 是一個(gè) Docker 本地集群系統(tǒng),它將相同的 API 公開為單個(gè) Docker 主機(jī),這意味著您可以將 Compose 用于 Swarm 實(shí)例并在多個(gè)主機(jī)上運(yùn)行應(yīng)用程序。
在集成指南中閱讀有關(guān) Compose / Swarm 集成的更多信息。
安裝組合
命令行引用
合成文件引用