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