使用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的初始页面显示为“它运作了!”