一、理解supervisor(supervisor服务不仅在容器中可用,在宿主机中也适用)

1、Dockerfile中的CMD可以指定启动容器后执行的第一个命令,但是当有多个服务进程需要启动的时候,就可以使用supervisor来管理容器中的服务。

2、supervisor的作用:可以管理多个服务,当服务挂掉的时候能自动帮你监控自动并重启这些服务(下例中supervisor服务管理了容器中的nginx和php两个服务)。

3、使用supervisor

(1)在容器中yum安装supervisor(需要epel源)

(2)supervisor的配置文件位置

    主配置文件:

    子配置文件:

(3)编辑supervisor的配置文件内容(子配置文件)

(4)启动supervisor服务

(5)查看状态

(6)supervisor的其他管理命令

(7)使supervisor的启动命令可以hang住

二、Dockerfile + supervisor原理

一般的Dockerfile文件中,用CMD定义一个命令,来让容器启动后执行第一个命令用来启动容器中的服务(例如nginx等),但是当容器需要启动多个服务(例如nginx和PHP两个服务)的时候,就不太好了,这个时候,可以在启动容器的时候直接执行supervisor服务的启动命令来开启动supervisor服务,然后让supervisor服务来帮我们启动其他的一系列服务即可。

三、Dockerfile + supervisor实践(下例中,用Dockerfile制作一个包含nginx和php服务的docker容器镜像,并且启动容器时可以自动启动nginx和php两个服务)

注意:此处需要确保supervisor服务的启动命令是一个可以夯住的命令,这样才能保证docker容器一直运行不会退出。

Dockerfile优化——supervisor服务的更多相关文章

  1. 使用Dockerfile创建ssh服务的镜像02

    使用Dockerfile创建ssh服务的镜像02 1:创建工作目录---一个镜像的所有文件都放这个目录下 ubuntu@ubuntu:~$ mkdir sshd_ubuntu ubuntu@ubunt ...

  2. Nginx优化之服务性能优化

    优化Nginx服务的worker进程个数 修改nginx主配置文件 worker_processes 1; #指定了Nginx要开启的进程数,结尾数字就是进程个数 Nginx有Master进程和wor ...

  3. DockerFile优化总结

    1- dockerFile为什么要优化 ___ 随着我们对docker镜像的持续使用,在此过程中如果不加以注意并且优化,镜像的体积会越来越多.很多时候我们在使用docker部署应用时,会发现镜像的体积 ...

  4. SQL优化有偿服务

    本人目前经营MySQL数据库的SQL优化服务,100块钱一条.具体操作模式 其中第一条,可以通过在微信朋友圈转发链接中的信息(http://www.yougemysqldba.com/discuz/v ...

  5. 使用IIS 7.0 Smooth Streaming 优化视频服务

    http://www.cnblogs.com/dudu/archive/2013/06/08/iis_webserver_settings.html (支持高并发的IIS Web服务器常用设置) ht ...

  6. docker~Dockerfile优化程序的部署

    回到目录 一些理论 我们都知道docker这个容器工具可以帮助我们快速进行环境的部署,这对于运营人员来说,无疑是个福音,而这个工作大叔认为不应该是运营人员干的,而是由开发人员来做,因为只有你知道你干的 ...

  7. Dockerfile优化方式

    如今GitHub 仓库中已经包含了成千上万的Dockerfile,但并不是所有的Dockerfile都是高效的.本文将从四个方面来介绍Dockerfile的最佳实践,以此来帮助大家编写更优雅的Dock ...

  8. Supervisor服务开机自启动

    要解决的问题 在机器上部署自己编写的服务时候,我们可以使用Supervisor作为进程检活工具,用来自动重启服务. 但是当机器重启后,Supervisor却不能自动重启,那么谁来解决这个问题呢? 答案 ...

  9. 记一次生产事故的排查与优化——Java服务假死

    一.现象 在服务器上通过curl命令调用一个Java服务的查询接口,半天没有任何响应.关于该服务的基本功能如下: 1.该服务是一个后台刷新指示器的服务,即该服务会将用户需要的指示器数据提前计算好,放入 ...

随机推荐

  1. 阿里云IoT初试

    本文从概念到实战,以一个假想产品--"电子货架标签"(Electronic Shelf Label,以下简称ESL)为例,介绍基于阿里云IoT的物联网应用开发. 数据交互流程 以云 ...

  2. HTML5(五)——Canvas API

    什么是 Canvas API? Canvas API(画布)提供了一个通过 javascript 和 html 的 canvas 元素来在网页上实时绘制图形的方式.可用于动画.游戏.图标.图片编辑等多 ...

  3. C++ //多继承语法 C++中允许一个类继承多个类

    1 //多继承语法 C++中允许一个类继承多个类 2 #include <iostream> 3 #include <string> 4 using namespace std ...

  4. C++//递增运算符重载

    1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 //重载递增运算符 6 7 //自定义 ...

  5. 密码三次就会锁掉 while 循环

    while 只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句 一般定义 //return_type function_name( parameter list ) //{ ...

  6. Java容器学习——List

    Java容器学习--List 基础知识 数组: ​ 优点:随机存取,可以快速访问元素 ​ 缺点:静态分配内存,存在空间闲置或者溢出现象:不适合进行插入和删除操作,需要移动大量元素. 链表: ​ 优点: ...

  7. Build Web Server with Apache and Passenger

    Follow the instructions at 2.6. Generic installation, upgrade and downgrade method: via tarball of P ...

  8. 服务器put请求获取不到参数

    问题 put请求参数映射成实体类 而参数似乎接受不到,服务器识别为null 解决 在参数前边加上RequestBody @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请 ...

  9. Python - pydantic 入门介绍与 Models 的简单使用

    前言 为啥要学这个,因为 FastAPI 是基于它进行开发的,而且是个不错的框架,所以有必要深入学习 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p ...

  10. 【vulapps】Sturcts2 S2-037RCE漏洞复现

    一.漏洞基本信息 S2-037官方公告 CVE编号:CVE-2016-4438漏洞名称:Struts(S2-037)远程代码执行漏洞发布日期:2016.615受影响的软件及系统:Apache stru ...