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



  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

某先生xxxx

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值