使用docker(/sbin/init)启动Debian(Wheezy)

使用Docker进行操作

我以前一直对在Docker上使用诸如Bash等Shell来启动感到抵触。
其实正确的做法是创建一个常驻的容器,比如Apache或者Postfix来启动,但是对于我个人来说,我经常只是在自己的个人使用中创建容器。

   :
ENTRYPOINT ¥
   service apache2 start && ¥
   service postfix start && ¥
   bash --login

尽管可以这样写,但总觉得不够清爽。

Debian + Apache2 + PHP5 的组合

在简单的架构中,将PHP安装到Web服务器上。

FROM debian:7.9

MAINTAINER takara

WORKDIR /root/

ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get -y install apache2 php5
RUN sed -i -e 's/^\([1-6]:.\+\)/#\1/g' /etc/inittab 
ENV DEBIAN_FRONTEND dialog

EXPOSE 80

CMD ["/sbin/init", "3"]

构建

$ docker build -t deb_init:7.9 .

永久执行

$ docker run -itd --name deb_init -h deb_init deb_init:7.9

内部的过程

我会进入其中,看看流程。

$ docker exec -it deb_init /bin/bash
root@deb_init:~# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.4  0.1  10660  1640 ?        Ss   10:52   0:00 init [3]    
root      1364  0.1  1.4 134560 15360 ?        Ss   10:52   0:00 /usr/sbin/apache2 -k start
www-data  1379  0.0  0.6 134584  6884 ?        S    10:52   0:00 /usr/sbin/apache2 -k start
www-data  1380  0.0  0.6 134584  6884 ?        S    10:52   0:00 /usr/sbin/apache2 -k start
www-data  1382  0.0  0.6 134584  6884 ?        S    10:52   0:00 /usr/sbin/apache2 -k start
www-data  1383  0.0  0.6 134584  6884 ?        S    10:52   0:00 /usr/sbin/apache2 -k start
www-data  1385  0.0  0.6 134584  6884 ?        S    10:52   0:00 /usr/sbin/apache2 -k start
root      1414  2.6  0.3  17856  3156 ?        S    10:52   0:00 /bin/bash
root      1419  0.0  0.1  15320  1908 ?        R+   10:52   0:00 ps aux

这个启动过程相当简单(笑)
只有第一个启动的/sbin/init和apache而已
进入了bash和ps之后,感觉很好。

最初启动时,由于getty已启动,因此如果是使用docker,则没有直接连接的终端,所以可以使用sed命令从/etc/inittab中将其注释掉。

确认动作

从主机端执行”docker inspect deb_init”命令来查找IP并访问Apache。

$ wget -O- 172.17.1.66
--2015-11-10 19:55:46--  http://172.17.1.66/
172.17.1.66:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 177 [text/html]
`STDOUT' に保存中

 0% [                                                                               ] 0           --.-K/s              <html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
</body></html>
100%[==============================================================================>] 177         --.-K/s 時間 0s      

2015-11-10 19:55:46 (25.1 MB/s) - stdout へ出力完了 [177/177]

Apache的初始页面显示为“它运作了!”

广告
将在 10 秒后关闭
bannerAds