SVX日記
2019-06-16(Sun) 遅ればせながらdockerを活用する
従来の仮想化に理解の軸足を置いてしまうと、むしろ概念を掴むことが困難になりがちなコンテナ型仮想化技術「docker」であるが、一度、その特性を受け止めてしまえば、そもそも「docker」の方が、自然な仮想化手段であるとさえ思えてきたりする。
拙作ながら習作として、リモートブックマークサービスである「remotemark」と、ウェブメールビューアサービスである「maverick」のコンテナイメージを構築しgithub/dockerhubに登録してみた。
使うだけならば、新たにインストールしたOS、もしくは、新たに契約したVPSなどから、以下のわずかな操作を行うだけでリモートブックマークサービスを起動できる。今回は、自宅のOpenStack環境に構築してみた。
[root@lamassu ~]# dnf install docker docker-compose
[root@lamassu ~]# systemctl start docker
[root@lamassu ~]# systemctl enable docker
[root@lamassu ~]# mkdir -p docker/remotemark
[root@lamassu ~]# cd docker/remotemark
[root@lamassu remotemark]# curl -O https://raw.githubusercontent.com/furutanian/remotemark/master/docker-compose.yml
[root@lamassu remotemark]# docker-compose pull
[root@lamassu remotemark]# mkdir pv
[root@lamassu remotemark]# docker-compose up -d
[root@lamassu remotemark]# curl http://localhost:8080/cgi-bin/
[root@lamassu remotemark]# dnf install httpd mod_ssl
[root@lamassu remotemark]# vi /etc/httpd/conf.d/remotemark.conf
ProxyRequests Off
ProxyPass /remotemark http://localhost:8080/cgi-bin
ProxyPassReverse /remotemark http://localhost:8080/cgi-bin
[root@lamassu remotemark]# systemctl start httpd
[root@lamassu remotemark]# systemctl enable httpd
[root@lamassu remotemark]# git clone https://github.com/furutanian/remotemark/
[root@lamassu remotemark]# ln -s remotemark/Dockerfile .
[root@lamassu remotemark]# docker-compose build
[root@lamassu remotemark]# docker-compose up -d
似たような方法で、ウェブメールサービスを立ち上げることもできる。今回は、AWSのエントリープラン「Amazon Lightsail」の試用環境にCentOSを上げ構築してみた。試用期間が終わっても3.5ドル/月なら安いもんだ。
/root # mkdir -p docker/maverick
/root # cd docker/maverick
/root/docker/maverick # curl -O https://raw.githubusercontent.com/furutanian/mave/master/docker-compose.yml
/root/docker/maverick # docker-compose pull
/root/docker/maverick # mkdir pv
/root/docker/maverick # docker-compose up -d
/root/docker/maverick # curl http://localhost:8081/cgi-bin/
/root/docker/maverick # git clone https://github.com/furutanian/mave/
/root/docker/maverick # ln -s mave/Dockerfile .
/root/docker/maverick # ln -s mave/docker-compose.yml .
/root/docker/maverick # docker-compose build
/root/docker/maverick # mkdir pv
/root/docker/maverick # docker-compose up -d
/root/docker/maverick # vi /etc/httpd/conf.d/maverick.conf
ProxyRequests Off
ProxyPass /maverick http://localhost:8081/cgi-bin
ProxyPassReverse /maverick http://localhost:8081/cgi-bin
<Location /maverick>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
AuthType Digest
AuthName "Maverick"
AuthUserFile /var/www/.digest_pw
<RequireAny>
Require valid-user
</RequireAny>
</Location>
/root/docker/maverick # htdigest -c /var/www/.digest_pw "Maverick" user
/root/docker/maverick # chmod 600 /var/www/.digest_pw
/root/docker/maverick # chown apache:apache /var/www/.digest_pw
/root/docker/maverick # systemctl restart httpd
/root/docker/maverick # systemctl enable httpd