在生产环境中使用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. GetProp和SetProp的区别

    GetProp 函数功能:该函数从给定窗口的属性列表中检索数据句柄.给定的字符串标识了要检索的句柄.该字符串和句柄必须在前一次调用SetProp函数时已经加到属性表中. 函数原型:HANDLE Get ...

  2. Mac下持续集成-与JMeter与Ant执行后自动发送邮件的整合(性能报告)==

    配置信息如下,其他的为默认的: 添加性能测试报告后,性能测试报告部分构件失败:

  3. SQL-W3School-高级:SQL ALTER TABLE 语句

    ylbtech-SQL-W3School-高级:SQL ALTER TABLE 语句 1.返回顶部 1. ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. ...

  4. react native Expo完全基于ScrollView实现的下拉刷新和上拉触底加载

    我直接封装成了一个组件 props参数为 static propTypes = { style:PropTypes.object, // 样式 refreshing:PropTypes.bool.is ...

  5. mySQL 插入,更新和删除数据

    插入数据: 语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如 ...

  6. PCA人脸识别学习笔记---代码篇

    查看并改变当前的工作路径 path="D:\\python-file\\faker" os.chdir(path) retval=os.getcwd() print(retval) ...

  7. 数据分析 - Excel 综合实例 - 杜邦分析法

    项目背景 杜邦分析法 利用 杜邦分析法完成对一份数据的动态分析 流程图如下 项目源数据 左侧为竖向的数据管理, 右侧为横向的数据管理 横向的数据管理在数据透视的时候会很不方便, 并不推荐 常用叫法左边 ...

  8. 关于在Vue中,只要单个列表显示模态框的做法。

    1.在后台返回的数组对象中,添加一个自定义属性,这个属性用于控制模态框的显示.2.在事件中传入该列表的索引参数,然后在事件方法中找到数组相对应的下标,更改自定义属性便可

  9. [maven]maven插件 tomcat7-maven-plugin 的使用

    使用 tomcat7-maven-plugin,可以将tomcat内嵌到web项目中,直接运行webapp项目. 第一步.pom.xml的配置: <build> <plugins&g ...

  10. 反射之深入理解Constructor原理

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...