在生产环境中使用Compose

在开发环境中使用Compose定义你的应用,可以使用此定义在不同的环境,(如 CI、暂存和生产)中运行应用程序。

部署应用程序的最简单方法是在单个服务器上运行该应用程序,类似于运行开发环境的方式。如果要扩展应用程序,可以在 Swarm 群集上运行Compose应用。

为生产环境修改你的Compose文件

您可能需要对应用配置进行更改,使其为生产环境做好准备。这些更改可能包括:

  • 删除应用程序代码的任何卷绑定,以便代码保留在容器内,并且不能从外部更改
  • 绑定到主机上的不同端口
  • 为开发和生产设置不同的配置文件,例如需要减少日志记录详细程度或启用电子邮件发送时)
  • 指定重新启动策略 如 restart: always 避免停机
  • 添加额外的服务,如 log aggregator

因此,请考虑定义一个额外的 Compose 文件,例如 production.yml ,该文件指定与生产相适应的配置。此配置文件只需要包含您希望从原始Compose文件所做的更改。可以覆盖原始 docker-compose.yml 以创建新配置。

获得第二个配置文件后,告诉撰写使用它与 -f 选项:

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

有关更完整的示例,请参阅使用多个compose文件

部署更改

更改应用代码时,请记住重新生成镜像并重新创建应用的容器。要重新部署一个名叫 Web 的服务,请使用:

$ docker-compose build web

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

这首先重建 Web 的镜像,然后仅停止、销毁和重新创建 Web 服务。--no-deps 标志阻止 Compose 也重新创建 Web 所依赖的任何服务。

在单个服务器上运行Compose

通过适当设置 DOCKER_HOSTDOCKER_TLS_VERIFY 和 DOCKER_CERT_PATH 环境变量,可以使用Compose将应用部署到远程Docker主机。对于这样的任务,Docker Machine 使本地和远程Docker主机的管理变得非常简单,即使您不进行远程部署,也建议您这样做。

设置环境变量后,所有正常的 docker-compose 命令都无需进一步配置。

在 Swarm 群集上运行Compose

Docker Swarm 是Docker本机群集系统,它公开与单个Docker主机相同的API,这意味着您可以针对Swarm实例使用Compose并在多个主机上运行应用。

集成指南中阅读有关 Compose/Swarm 集成的更多内容。

Compose 文档

  • 安装Compose
  • 命令行引用
  • Compose文件引用

官方原文地址:https://docs.docker.com/compose/production/

在生产环境中使用Compose 【翻译】的更多相关文章

  1. 生产环境中使用Docker Swarm的一些建议

    译者按: 实践中会发现,生产环境中使用单个Docker节点是远远不够的,搭建Docker集群势在必行.然而,面对Kubernetes, Mesos以及Swarm等众多容器集群系统,我们该如何选择呢?它 ...

  2. .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点

    2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上 ...

  3. 理解Docker(6):若干企业生产环境中的容器网络方案

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  4. .NET跨平台之旅:生产环境中第2个跑在Linux上的ASP.NET Core站点

    今天我们在生产环境中上线了第2个跑在Linux上的ASP.NET Core站点.这是一个简单的Web API站点,通过命令行的方式调用安装在Linux服务器上的程序完成操作.之前用的是nodejs,现 ...

  5. 【原】Storm Local模式和生产环境中Topology运行配置

    Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...

  6. 生产环境中CentOS7部署NET Core应用程序

    NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. ...

  7. [virtualenv]生产环境中使用virtualenv

    virtualenv 对于python开发和部署都是好工具,可以隔离多个python版本和第三方库的版本,这里作者总结了几个常用python服务怎么样结合virtual部署 原文链接 Python 中 ...

  8. Kubernetes 在生产环境中常用架构

    Kubernetes 在生产环境中常用架构 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下图所示 在该架构中,我们可以将其分为四层,如下: Client层:即Kuber ...

  9. Dubbo Mesh 在闲鱼生产环境中的落地实践

    本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是“借力开源.反哺开源” ...

随机推荐

  1. elasticsearch各种服务链接

    查看elasticsearch信息http://localhost:9200/ 查看某个索引信息http://localhost:9200/index_name例如:http://localhost: ...

  2. vue cli 安装element-ui

    1.安装elment-ui --save 参数:上线打包 MacBookPro:vue_test zhangxm$ npm install element-ui axios --save npm WA ...

  3. ybatis 逆向工程 自动生成的mapper文件没有 主键方法

    1.数据表没有设置主键 设置个主键就好 2.在mybits配置文档里设置了某些属性值为false 在mybatis配置文档里查看 enableSelectByPrimaryKey="true ...

  4. ZT:阿里合伙人发文:十年磨一剑,自研数据库终拿世界第一

    按:真正做技术的,就该这样. 以下为全文转载 (观察者网讯) 10月24日,阿里巴巴合伙人.高德总裁刘振飞在阿里云开发者社区发文,回忆从2009年启动“去IOE”工程到2019年OceanBase拿下 ...

  5. 《Flutter 实战》开源电子书

    <Flutter 实战>开源电子书 转 https://blog.csdn.net/OQjya206rsQ71/article/details/86619630   关于 Flutter ...

  6. java time

    package cn.itcast_04;       import java.text.SimpleDateFormat;   import java.util.Date;       public ...

  7. C++ STL partial_sort_copy

    #include <iostream>#include <deque>#include <algorithm>#include <vector> usi ...

  8. 微信小程序 — 自定义picker选择器弹窗内容+textarea穿透bug

    微信小程序中定义好的几种picker选择器,不管是日期选择器还是地区选择器,或是其他的都只有定死的样式和内容. 但是大多数开发程序的情况下还是需要自己写样式的,或是内容的. 例如: 代码如下: < ...

  9. webdriervAPI(控制浏览器及简单元素操作)

    from  selenium  import  webdriver driver  =  webdriver.Chorme() driver.get("http://www.baidu.co ...

  10. java、python、golang等开发语言如何快速生成二维码?

    免费二维码生成途径非常多!比如比较有名的草料二维码,如果只是简单的使用,用它就足够了.但是如果想大规模的生成,那就不太合适了.再者很多工具都没办法在二维码中加入logo(像微信二维码一样). 接下来, ...