Docker Container同时启动多服务

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

时间: 2024-12-06 07:51:16

Docker Container同时启动多服务的相关文章

docker 容器 后台启动模式 启动时候启动的服务 如何进行 日志重定向,ENTRYPOINT ["/usr/bin/python", "nohup /ABC

问题描述 docker容器后台启动模式启动时候启动的服务如何进行日志重定向,ENTRYPOINT["/usr/bin/python","nohup/ABC.py>xxx.log&"]吗?该问题来自CSDNDocker技术交流群(303806405),由版主xinshubiao整理.

在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用(五)

服务智能路由 本文为阿里云容器服务Spring Cloud应用开发系列文章的第五篇,讨论如何利用Spring Cloud 对 Netflix Zuul支持,完成服务的职能路由功能. 一.在阿里云容器服务上开发Spring Cloud微服务应用 二.部署Spring Cloud应用示例 三.服务发现 四.服务间通信与集成 五.服务智能路由(本文) 六.集中配置管理 七.高可用和容错 八.监控和日志 九.服务的部署和发布策略 使用Zuul构建简单API Gateway 在手机端完成一个功能有可能需要

Mac上使用Docker如何快速启动MySQL测试_docker

本文主要讨论使用Docker快速启动 MySQL 测试的方法,包括Mac环境.一起看看吧! 近来业界有很多对Docker的讨论,其生态系统发展得很快,然而,从简单的"入门"或"引导"类的文章中能容易地找到成熟的技术,但Docker不然.我在Mac上试玩过Docker,但Mac绝对是Docker界的二等公民.当我在Giuseppe的博客上看到关于在Mac上使用新Docker beta<Docker for Mac beta and MySQL>一文时,决定

Docker结合Consul实现的服务发现(二)

本文讲的是Docker结合Consul实现的服务发现(二),[编者的话]这是Docker结合Consul实现服务发现系列文章的第二篇,在本文中,作者引入了HAproxy,并且利用Consul的EnvConsul及ConsulTemplate特性实现了对服务发现一些周边功能的支持. 那么,欢迎来到"Docker结合Consul实现的服务发现"系列的第二部分.在这第二篇里,我们将一起来看看你该如何使用Consul相关的系列工具,以使得服务发现其他的周边功能更容易实现. 想要了解本系列的其他

Docker与Traefik助微服务腾飞

本文讲的是Docker与Traefik助微服务腾飞[编者的话]Govind Fichtner是一位从业15年的德国IT老兵.先后担任过开发工程师.系统管理员.咨询师.架构师.敏捷训练师.项目经理.部门经理甚至CTO.白天他是一位勤奋的DevOps,晚上则变身为狂热的ARM设备爱好者.他现在为Hypriot成员,该组织成员以"Docker海盗"自称,发布了多款ARM架构中的Docker应用.他们的身上完美的体现了Geek精神. 几周之前我发现了一款叫做Tradefik的小而美的HTTP反

启动web服务时,tomcat无法启动

问题描述 启动web服务时,tomcat无法启动 重新安装tomcat,启动服务时就报以下错误 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].Sta

Docker结合Consul实现的服务发现(一)

本文讲的是Docker结合Consul实现的服务发现(一),[编者的话]这是Docker结合Consul实现服务发现系列文章的第一篇,在本文中,作者介绍了一个基础的前后端服务架构并讲解了如何通过Consul实现服务的注册和发现. 在过去的一年里,我开始变得热衷于使用Consul来实现一切和服务发现相关的东西.如果你正在做微服务的话,你可能会碰到一个问题,那就是当你创建的服务数量越多时,这些服务之间的通信便越难管理.针对这个问题,Consul给出了一份完美的答卷.它提供了一个易于使用,基于开放标准

利用Docker和阿里云容器服务轻松搭建TensorFlow Serving集群

本系列将利用Docker和阿里云容器服务,帮助您上手TensorFlow的机器学习方案 第一篇:打造TensorFlow的实验环境 第二篇:轻松搭建TensorFlow Serving集群 - 本文 第三篇 打通TensorFlow持续训练链路 第四篇 利用Neural Style的TensorFlow实现,像梵高一样作画 第五篇 轻松搭建分布式TensorFlow训练集群(上) 本文是系列中的第二篇文章,将带您快速了解Tensorflow Serving的原理和使用,并利用阿里云容器服务轻松在

Docker生态系统系列之三:服务发现和分布式配置存储

本文讲的是Docker生态系统系列之三:服务发现和分布式配置存储,[编者的话]本文介绍了服务发现与全局可读配置存储两部分内容,不仅介绍了工作原理和工作方式,也介绍了与之相关的故障检测.重配置和安全问题,最后还介绍了常用的服务发现项目.整篇文章将这个知识点介绍的很全面细致,让读者能够对服务发现和全局可读配置存储有一个全面的认识,值得学习. 介绍 容器给寻找大规模设计与部署应用的需求提供了一个优雅的解决方案.在Docker提供实际容器技术的同时,许多其他的项目也在协助开发在部署环境中所需要的引导和沟