由于容器中需同时启动smbd和cupsd两个服务,采用通过supervisord来解决CMD只能提供一个启动服务的问题。
Dockerfile
#源镜像
FROM centos:6
#作者
MAINTAINER shark1985
#163Yum源
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo && yum makecache
#安装软件包
RUN yum -y install samba cups cups-libs python-setuptools
RUN curl -o supervisor.gz https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3.3.1.tar.gz && \
tar -zxvf supervisor.gz && \
cd supervisor.gz && \
python setup.py install
#备份
RUN mv /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak
RUN mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
#配置文件
ADD cupsd.conf /etc/cups/
ADD smb.conf /etc/samba/
ADD supervisord.conf /etc/
#supervisord配置
RUN mkdir -p /var/log/supervisord
#设置root密码
RUN echo 123456 | passwd --stdin root
#开放端口
EXPOSE 139 445 631
#启动服务
CMD ["/usr/bin/supervisord"]
构建成功
docker build -t scups .
Sending build context to Docker daemon 13.31kB
Step 1/14 : FROM centos:6
---> d0957ffdf8a2
Step 2/14 : MAINTAINER shark1985
---> Using cache
---> 96d085dae698
Step 3/14 : RUN curl -o /etc/yum.repos.d/CentOS-Base.rep http://mirrors.163.com/.help/CentOS6-Base-163.repo && yum makecache
---> Using cache
---> dff7e4b1aac9
Step 4/14 : RUN yum -y install samba cups cups-libs wget python-setuptools
---> Using cache
---> e8ce23a13975
Step 5/14 : RUN wget https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3.3.1.tar.gz && tar -zxvf supervisor-3.3.1.tar.gz && cd supervisor-3.3.1 && python setup.py install
---> Using cache
---> 17d6aaf5c33f
Step 6/14 : RUN mv /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak
---> Using cache
---> 18d554747e66
Step 7/14 : RUN mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
---> Using cache
---> c5f0dd1633f8
Step 8/14 : ADD cupsd.conf /etc/cups/
---> Using cache
---> 4b57881d5522
Step 9/14 : ADD smb.conf /etc/samba/
---> Using cache
---> 3e01e72c0387
Step 10/14 : ADD superv