やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

Ubuntu 16.04 Dockerメモ

UbuntuのDockerコンテナ上に、CentOS7にWebサーバを立てた環境を作ろうとしたのですが、
yum install httpdでコケてしまいました。


似たネタで引っかかっている方が結構おられたようで、どうもストレージエンジンaufsが
微妙にイケていないことが原因とのこと。
とりあえず、ストレージエンジンをdevicemapperに変更すれば回避できるとのことで
公開されている方法で設定ファイルをいじっていたのですが、
今度はDockerサービス再起動時に無反応になるという状況に陥ってしまいました。
何だろうとdevicemapperを手がかりに調べてみたところ、lvm2が抜けていたことが原因の模様。
https://launchpad.net/ubuntu/+source/lvm2
説明を見る限り、この子がDevice Mapperを何かしらしてくれるようですが、
てっきり、Ubuntuのデフォルトで入ると思い込んでいました。
ハマりそうなので、以下、自分用メモ。


(1)dockerパッケージ入れる


(2)設定ファイルの変更および反映(事前にバックアップを取ること)
$ cd /lib/systemd/system
$ sudo vi docker.service

                                                                    • -

ExecStart=/usr/bin/docker daemon -H fd://

ExecStart=/usr/bin/docker daemon -H fd:// --storage-driver=devicemapper

                                                                    • -

$ sudo systemctl daemon-reload


(3)lvm2パッケージを入れる(Synapticから導入)


(4)起動およびストレージエンジンの確認
$ sudo service docker start
$ sudo docker info

                                                                    • -

下記の表示を確認
Server Version: 1.11.1
Storage Driver: devicemapper

                                                                    • -



(5)CentOS7のbuild
http://www.atmarkit.co.jp/ait/articles/1407/08/news031.html
を参考に、こんな感じにDockerfile作ってbuildしたら
yum install httpdまで行った(コンテナ起動は未確認)。

                                                                    • -

FROM centos
MAINTAINER (適当)
RUN yum install -y httpd
ADD index.html /var/www/html

                                                                    • -





【2016年5月22日追記】
Dockerを再インストールしたので、こちらに書きました。