さくらのVPS上でdocker -dを実行するために四苦八苦
dockerをインストールするのは簡単。
docker -dを実行しようとするとkernelのバージョンが合わないとのこと。
対処として、kernelのバージョンアップを行うか、VPSなのでkernelバージョンの合うOSに入れ替えるかのどちらかが選べたが、行ったことが無いkernelバージョンアップを選択。
CentOS6.3をLinuxカーネル3.6にアップデートしてみました(カーネル再構築)|リナックスマスター.JP 公式ブログ
上記を参考に 3.19.8 を入れた。
さーてdockerは動くかな、と試してみると今度はiptablesのバージョンが合わないということなので、以下を参考に作業。
Ubnutu 14.04 LTSで最新版のiptablesを使う | ビットログ
libmnl, libnftnlもビルドしつつpkg-configやalternativesなんてものがあることを知る。
alternativesについては下記を参考にした。
replace centos 6.x iptables · GitHub
そこでdocker -dを実行すると、また問題が発生。iptables で nat が無効になっていたようなのでkernelを再度ビルド。
make oldconfig のログを読み返すと、確かに新しい設定として検出されていました。ええ、Enter キーを長押しにしていたので気づきませんでしたとも。こんなの気付かないよなぁ・・。
共感しました。でもって参考にしつつmake menuconfigがうまく動作しなかったので愚直に.configを手修正しました。
もいちどdocker -dをして再度問題発生。
rhel6 - Docker on RHEL 6 Cgroup mounting failing - Stack Overflow
grub.confを編集してrebootしてもうまく行かず。
Dockerで`Error: cannot mount hugetlb to /cgroup/hugetlb`と言われた時の対処法 - Qiita
上記リンク先と同様にmemoryに関する行をコメントアウトして `$ sudo /etc/init.d/cgconfig restart` して無事起動。
ようやく`docker -d`も成功。
長かったー。