在生产环境中使用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. java 架构师思维导图

    java 基础 . 理解IO.多线程.集合等基础框架.对JVM原理有一定了解. spring  spring boot  ibatis   structs开源框架了解. 熟悉分布式系统设计和应用. 小 ...

  2. P3015 [USACO11FEB]最好的括号Best Parenthesis

    P3015 [USACO11FEB]最好的括号Best Parenthesis 题解 一定要开 long long !!! 通过阅读英文题面我们知道所给出的字符串是已经匹配好的,所以我们只是计算就好了 ...

  3. python hasattr()函数,getattr()函数, setattr()函数

    1. hasattr(object, ‘属性名 or 方法名') 判断一个对象里面是否有某个属性或者某个方法,返回布尔值,有某个属性或者方法返回True, 否则返回False 2. getattr() ...

  4. 三、Navicat将远程MySql数据库数据导入本地

    1.安装本地的MySql.记住用户名和密码,这里以root,root为例. 2.打开Navicat,新建连接(连接),输入连接名,用户名,密码.确定,连接测试.这里连接名为luzhanshi.这样本地 ...

  5. SQL-W3School-高级:SQL LIKE 操作符

    ylbtech-SQL-W3School-高级:SQL LIKE 操作符 1.返回顶部 1. LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. LIKE 操作符 LIKE 操作符用于在 ...

  6. 修改Eclipse启动时的选择工作空间

    对于eclipse的默认的工作空间,如果不需要正常切换workspace的用户很方便,打开eclipse便自动进入默认的工作空间.而如果用户经常在多个workspace之间切换的话,启动eclipse ...

  7. 一个BADI创建了两个实施会有什么问题呢?

    BADI :LE_SHP_DELIVERY_PROC 创建了两个实施,会导致什么问题呢? 前台测试  调试 VL01N 进了这个断点:ZCL_IM_IM_LE_SHP_DELIV_001 F8之后  ...

  8. hdfs操作命令

    文件操作命令:hdfs dfs -ls /hdfs dfs -mkdir /hdfs dfs -rm -rf /hdfshdfs dfs -duhdfs dfs -get /hdfs /localhd ...

  9. redis watch 加 事务实现秒杀

    <?php   //redis watch 加 事务实现秒杀  $redis = new redis();  $result = $redis->connect('10.10.10.119 ...

  10. Cocos Creator Android打包 apk

    这一篇讲的是用 Cocos Creator 编译器打包 Android APP 的时候遇到的一些问题,虽然说打包的过程不是很复杂,但是在其中还是会遇到各式各样的坑. 我们将项目用CCC(Cocos C ...