• Docker Container同时启动多服务 supervisor


    Docker Container同时启动多服务

    转载请注明来自:http://blog.csdn.net/wsscy2004


    昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通过Dockerfile build的,利用CMD命令启动ssh。

    通过centos6.5+ssh镜像,我想build一个rabbitmq镜像,Dockerfile中CMD启动rabbitmq服务。虽然我知道Dockerfile中的CMD只能有一个,但没想到创建另一个image,也会继承FROM image的CMD.

    利用docker的命令inspect可以看到,CMD已经被替换了。

    "Cmd": [
    
       /usr/bin/supervisord"
    
    ],

    下面进入正题,如何同时启动多个服务,主要有如下方式

    supervisor

    supervisor是linux下监控进程的工具,通过supervisor启动所有服务。

    创建Dockerfile:

    # use this image to run multiple service
    
    # add service in supervisord.conf
    
     
    
    FROM centos6-ssh
    
    MAINTAINER edwardsbean@gmail.com
    
    RUN yum install -y supervisor
    
    RUN mkdir -p /var/run/sshd
    
    RUN mkdir -p /var/log/supervisor
    
    ADD supervisord.conf /etc/supervisord.conf
    
    # expose your port to host
    
    EXPOSE 22 80
    
    CMD ["/usr/bin/supervisord"]

    创建supervisord.conf:

    [supervisord]
    
    nodaemon=true
    
     
    
    [program:sshd]
    
    command=/usr/sbin/sshd -D
    
     
    
    #add another service#[program:hello]#command=/bin/bash -c "/root/test.sh"

    制作成image:

    docker build -t supervisord .

    以后就可以通过supervisord.conf添加服务了

    CMD启动脚本

    通过将所有要启动的服务封装成一个脚本,利用CMD命令去启动这个脚本。但是不如supervisord好、不推荐。

  • 相关阅读:
    Ultra-QuickSort(归并排序求逆序对数)
    Power Network (最大流增广路算法模板题)
    Sorting It All Out
    Asteroids(二分图最大匹配模板题)
    昂贵的聘礼
    Borg Maze(bfs+prim)
    Currency Exchange(判断是否有正环)
    Children of the Candy Corn (bfs+dfs)
    Tautology
    Flip Game
  • 原文地址:https://www.cnblogs.com/zhengah/p/4935237.html
Copyright © 2020-2023  润新知