在生产环境中使用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 的整体发展思路是“借力开源.反哺开源” ...
随机推荐
- CentOS 安装 MySQL PDO 扩展
yum install php-pdo_mysql sudo service php-fpm restart
- puppeteer爬虫服务
爬虫文件 baidu.js const puppeteer = require("puppeteer"); const path = require('path'); const ...
- AtomicInteger原理
AtomicInteger的原理 java的并发原子包里面提供了很多可以进行原子操作的类,比如: AtomicInteger AtomicBoolean AtomicLong AtomicRefere ...
- Kombu is a messaging library for Python.
https://kombu.readthedocs.io/en/stable/introduction.html
- Java同步数据结构之LinkedBlockingQueue
前言 比起ArrayBlockingQueue,LinkedBlockingQueue应该是最被大家常用的阻塞队列,LinkedBlockingQueue是基于链表的一种可选容量的阻塞队列,也就是说, ...
- Python 调用outlook发送邮件(转 )
单账号: import win32com.client as win32 def send_mail(): outlook = win32.Dispatch('Outlook.Application' ...
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_20-CMS前端页面查询开发-页面原型-页面内容完善
访问swaggerUI的接口 得到返回的json数据,就是我们页面上要显示的数据 复制到页面的数据这里 [ { "siteId": "5a751fab6abb5044e0 ...
- python3 枚举enum定义和使用
两种方式定义枚举类: 1.直接使用Enum列出多个枚举值来创建枚举类. 2.通过集成Enum基类派生枚举类. 程序示范: 1.直接使用Enum列出多个枚举值来创建枚举类. from enum impo ...
- tmpfs使用完毕导致数据库无法正常工作
df -h 查看 重新启动服务器就可以了
- Nginx+Keepalived双主架构实现
Keepalived+Nginx实现高可用Web负载均衡 Master 192.168.0.69 nginx.keepalived Centos7.4backup 192.168.0.70 nginx ...