dockerの実行
以前からdockerで最後bash等のシェルで起動するのは抵抗があったんです。
本当は常駐する、apacheとかpostfixとか起動するのが正しいのでしょうけど、自分の場合、個人利用が多いので利用する単位でコンテナ作ったりします。
Dockerfile
:
ENTRYPOINT ¥
service apache2 start && ¥
service postfix start && ¥
bash --login
このように書いてもいいのですけど、なんかすっきりしないですよね。
debian + apache2 + php5
シンプルな構成でウェブサーバーにPHPをインストール。
Dockerfile
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であれば直接繋がってる端末もないので/etc/inittab
からsed
でコメントアウト
動作確認
ホスト側から「docker inspect deb_init」でIPを調べアパッチへアクセス。
$ 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の初期状態のページ「It works!」がでてますね。