在生产环境中使用Compose 【翻译】
在生产环境中使用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_HOST、DOCKER_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 【翻译】的更多相关文章
- 生产环境中使用Docker Swarm的一些建议
译者按: 实践中会发现,生产环境中使用单个Docker节点是远远不够的,搭建Docker集群势在必行.然而,面对Kubernetes, Mesos以及Swarm等众多容器集群系统,我们该如何选择呢?它 ...
- .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点
2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上 ...
- 理解Docker(6):若干企业生产环境中的容器网络方案
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- .NET跨平台之旅:生产环境中第2个跑在Linux上的ASP.NET Core站点
今天我们在生产环境中上线了第2个跑在Linux上的ASP.NET Core站点.这是一个简单的Web API站点,通过命令行的方式调用安装在Linux服务器上的程序完成操作.之前用的是nodejs,现 ...
- 【原】Storm Local模式和生产环境中Topology运行配置
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- 生产环境中CentOS7部署NET Core应用程序
NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. ...
- [virtualenv]生产环境中使用virtualenv
virtualenv 对于python开发和部署都是好工具,可以隔离多个python版本和第三方库的版本,这里作者总结了几个常用python服务怎么样结合virtual部署 原文链接 Python 中 ...
- Kubernetes 在生产环境中常用架构
Kubernetes 在生产环境中常用架构 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下图所示 在该架构中,我们可以将其分为四层,如下: Client层:即Kuber ...
- Dubbo Mesh 在闲鱼生产环境中的落地实践
本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是“借力开源.反哺开源” ...
随机推荐
- js/jQuery中的宽高
一.和window有关的宽高 window.innerWidth:浏览器窗口宽度 window.innerHeight:浏览器窗口高度(不包括导航,工具栏等的高度) window.outerWidth ...
- TCP/IP协议入门
TCP/IP协议入门 1. 简介 Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/因特网互联协议.它是网络通信的一套协议集合. 先 ...
- 第11组 Beta冲刺(2/5)
第11组 Beta冲刺(2/5) 队名 不知道叫什么团队 组长博客 https://www.cnblogs.com/xxylac/p/11997386.html 作业博客 https://edu. ...
- 以太坊Geth通过私钥导入新地址到钱包步骤(3种方法)
一: 通过Geth客户端导入私钥: Open TextEdit Paste key into TextEdit without any extra characters or quotations S ...
- smarty 对数据库的简单操作。
smarty简单配置 -------------------------------------smarty_inc.php-------------------------------------- ...
- c++ template Queue
#pragma once#include <iostream>#include <iomanip> using namespace std; template<class ...
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_11-freemarker静态化测试-基于模板字符串静态化
再定义一个测试方法 把拿到的字符串变成模板 加载器设置好了以后, 加一个断点来测试 生成模板文件 上面这种方式很灵活. 最终代码 @Test public void testGenerateHtmlB ...
- 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_01-项目概述-功能构架-项目背景
这个就是博学谷下的 在线教育平台
- VLC播放器web插件接口(Part1)
本文转自:http://blog.csdn.net/xiaoxiaoxuewen/article/details/7698803Embed tag attributesTo embed the plu ...
- 人人都可以写的一个Python可视化小程序,带你走进编程的世界
当年的PHP号称是最好的编程语言,今天的Python就是最简单的编程语言,一个小小的程序,寥寥几行代码,带你体验一下编程的乐趣. 最简单的编程语言 今天要介绍的小工具是Python环境安装好之后,自带 ...