Docker容器在启动的时候开启单个进程,但实际上,在一个机器上通常需要开启多个服务。

创建基础的Dockerfile

FROM ubuntu:13.04
MAINTAINER [email protected]
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get upgrade -y

安装ssh、apache、supervisor

RUN apt-get install -y openssh-server apache2 supervisor
RUN mkdir -p /var/run/sshd
RUN mkdir -p /var/log/supervisor

添加supervisord配置文件

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

映射端口,配置启动服务

EXPOSE 22 80
CMD ["/usr/bin/supervisord"]

supervisor配置

[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
[program:apache2]
command=/bin/bash -c "Source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"

使用方法

创建镜像

$ sudo docker build -t test/supervisord .

启动supervisor容器

$ sudo docker run -p 22 -p 80 -it test/supervisords

results matching ""

    No results matching ""