Docker系列教程27-在生產環境中使用Docker Compose 原

編者按:這是一篇翻譯,原文詳見:https://docs.docker.com/compose/production/

譯文原文:http://www.itmuch.com/docker/27-docker-compose-in-production/,轉載請說明出處。

在development中使用Compose定義應用程序時,可使用此定義,在不同環境(如CI,staging和production)中運行應用程序。

部署應用最簡單的方法是在單機服務器上運行,類似於運行development環境的方式。如果要對應用程序擴容,可在Swarm集羣上運行Compose應用程序。

Modify your Compose file for production(爲生產環境修改您的Compose文件)

您幾乎肯定會對您的應用配置進行更改,從而使這些配置更適合線上環境。 這些更改可能包括:

  • 刪除任何綁定到應用程序代碼的Volume,以便代碼保持在容器內,不能從外部更改
  • 綁定到主機上的不同端口
  • 設置不同的環境變量(例如,減少日誌的冗長程度或啓用email發送)
    • DEBUG INFO WARN ERROR FETAL
  • 指定重啓策略(例如, restart: always ),從而避免停機
  • 添加額外服務(例如,日誌聚合器)

因此,您可能需要定義一個額外的Compose文件,比如production.yml ,它指定了適用於生產的配置。此配置文件只需包含從原始Compose文件的修改。該附加Compose文件,可在原始的docker-compose.yml 基礎上被應用,從而創建新的配置。

一旦獲得了第二個配置文件,可使用-f 選項告訴Compose:

docker-compose -f docker-compose.yml -f production.yml up -d

請參閱 Using multiple compose files 獲取更完整的示例。

Deploying changes(部署修改)

當您更改應用代碼時,您需要重新構建鏡像並重新創建容器。例如,重新部署名爲web 的服務,可使用:

$ docker-compose build web
$ docker-compose up --no-deps -d web

這將會先重新構建web 的鏡像,然後停止、銷燬、重新創建web 服務。 --no-deps 標誌可防止Compose重新創建任何web 依賴的服務。

Running Compose on a single server(單機服務器上運行Compose)

通過適當地設置DOCKER_HOSTDOCKER_TLS_VERIFYDOCKER_CERT_PATH 等環境變量,可使用Compose將應用程序部署到遠程的Docker主機。 對於像這樣的任務,Docker Machine 可使本地/遠程Docker主機管理變得非常簡單,即使您沒有遠程部署也推薦使用Docker Machine。

一旦您設置瞭如上環境變量,所有正常的docker-compose 命令將無需進一步的配置。

Running Compose on a Swarm cluster(在Swarm集羣上運行Compose)

Docker Swarm ,是一款Docker原生的集羣系統,它暴露了與單個Docker主機相同的API,這意味着您可在Swarm實例上使用Compose,並在多個主機上運行應用程序。

閱讀更多關於集成指Compose/Swarm整合的內容,請詳見 integration guide

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章