さくらの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を再度ビルド。

iptables | すなのかたまり

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`も成功。

長かったー。