热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DockerContainer同时启动多服务supervisor

DockerContainer同时启动多服务转载请注明来自:http:blog.csdn.netwsscy2004昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通

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好、不推荐。

 


推荐阅读
  • SpringBoot启动脚本详解:BAT文件应用与基础入门指南(SpringBoot系列第1篇)
    如果你还在为SSM框架的复杂搭建过程和繁琐的配置文件而烦恼,那么SpringBoot将是你的一大福音。作为SpringBoot系列的第一篇文章,本文详细介绍了如何使用BAT文件来启动SpringBoot应用,并提供了基础入门指南,帮助开发者快速上手,简化开发流程。 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 在Windows环境中优化提交Spark任务的方法与实践
    在Windows环境中优化提交Spark任务的方法与实践 ... [详细]
  • 一键将应用部署至远程服务器,体验超乎想象的便捷与高效
    该插件作为IDEA的内置功能,用户可以直接启用,无需额外安装。通过简单的配置,即可实现应用的一键部署至远程服务器,极大地提升了开发效率和便捷性。插件支持镜像管理和容器管理,允许用户与容器进行交互,并且兼容Docker Compose,适用于复杂的多容器应用部署。总结部分详细介绍了插件的使用方法和优势,附带的参考资料和项目源码地址为用户提供更多学习和实践资源。 ... [详细]
  • 本文详细介绍了在 CentOS 6.7 x64 环境下配置 MySQL 5.6.29 的 GTID 主从复制方法。主库 IP 为 192.168.0.65,备库 IP 为 192.168.0.66。通过逐步指导,帮助读者顺利实现高可用性和数据一致性。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文详细解析了神州数码DCRS5980交换机的基础配置流程和技术要点。首先,通过进入配置模式(`enable`),设置主机名(`hostname 5980`),并创建VLAN,逐步介绍了设备的初始设置步骤。此外,还涵盖了端口配置、IP地址分配及安全设置等关键环节,为用户提供了全面的配置指导。 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • Docker网络基础探讨了如何通过高效的技术手段实现跨主机容器间的顺畅通信与访问。本文深入分析了Docker网络架构,特别是其在多主机环境下的应用,为Go语言开发者提供了宝贵的实践指导和理论支持。 ... [详细]
  • 在Mesos上运行Spark时,常见的问题是Slave节点可能会因应用程序资源消耗过大而耗尽资源。本文分析了这一问题的成因,并提供了多种有效的解决方案,包括资源调度优化、任务分配策略调整以及系统配置改进等,帮助用户提升集群的稳定性和性能。 ... [详细]
  • 版本控制是软件开发中的关键实践,用于管理和跟踪代码变更历史,确保团队协作高效有序。本文详细介绍了SVN(Subversion)服务器与客户端的安装配置步骤,并针对常见问题提供了实用的解决方案,帮助用户顺利搭建和使用SVN系统。 ... [详细]
  • Envoy 流量分配策略优化
    在本研究中,我们对Envoy的流量分配策略进行了优化,旨在提高系统的稳定性和性能。实验环境包括一个前端代理服务(Envoy,IP地址为172.31.57.10)和五个后端服务。通过调整Envoy的配置,实现了更高效的流量分发和负载均衡,显著提升了整体系统的响应速度和可靠性。 ... [详细]
  • 利用 Python Paramiko 库在远程服务器上高效执行 Shell 脚本的方法与技巧 ... [详细]
author-avatar
Henry-lau洋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有