[Docker] apache-logをvolumeに吐き出すコンテナ

dockerfile, httpd.conf, index.htmlを作る
httpd: apache
busybox: apache-log
volume: apache-volume

httpd.confは /usr/local/apache2/confにある

### httpd.confを取り出す
$ sudo docker run –rm -v /home/vagrant/dev/docker/basic/:/tmp/ -it httpd /bin/bash

httpd.confを編集します
L 先頭のコメント記号である「#」を削除して保存

    CustomLog "logs/access_log" combined

Dockerfile

FROM httpd

COPY ./index.html /usr/local/apache2/htdocs/

COPY ./httpd.conf /usr/local/apache2/conf/httpd.conf

EXPOSE 80

$ sudo docker build -t apache-image .
$ sudo docker run -v apachelog-volume:/usr/local/apache2/logs –name=apachelog-container busybox
$ sudo docker run –volumes-from apachelog-container -p 8080:80 -d –name=apache-container apache-image
$ sudo docker run –rm –volumes-from apachelog-container -it ubuntu /bin/bash
root@09bd68cd89e8:/# cd /usr/local/apache2/logs
root@09bd68cd89e8:/usr/local/apache2/logs# tail access_log

なるほど、httpd.confを編集できることはわかってたけど、複数のコンテナをvolumeで連携することなども出来るのか
結構面白い