Dockerを試してみた(雑感)

銀鷹です。

先日まで学会でアメリカに居りました。
ACSACという学会でしたが、割りと刺激も多く楽しかったですが、疲れました。
(もし気が向いたら、学会についても後日書きます。)

すこし時間が合ったのと、他のことをやる気になれなかったので、
前から試してみたかったDockerを試してみたので、適当に感想をまとめます。

環境

  • さくらVPS 1Gプラン
  • Ubuntu 12.04.3 LTS

インストール

完全にここの通り。http://docs.docker.io/en/latest/installation/ubuntulinux/
カーネルを3.8にあげてから、aptの鍵とか追加してインストールするだけ。

# install the backported kernel
sudo apt-get update
sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring

# reboot
sudo reboot

sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
Add the Docker repository to your apt sources list, update and install the lxc-docker package.

sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker

コンテナの起動

sudo docker run -i -t ubuntu /bin/bash

これで、コンテナの中のシェルに入る。
抜けるときはexit。ちなみに抜けるとコンテナは死ぬ。
(殺したくない場合は-dをつける。)

感想

良い点

非常にさっくりとコンテナを起動して、仮想環境を得られるのは良いと思った。 また、仮想環境上でも使えるので、VPSとかの上でも使えるのはいいところだと思う。
(別に、その気になればKVM on KVMとかも出来たはずだけど、それは別の話。)

微妙な点

コンテナ型の仮想環境ゆえなのか、色々と制約があってそれがちょっと面倒に思った。

具体的には以下の様な話がある。
https://github.com/dotcloud/docker/issues/1024
なんでも、Dockerが/sbin/initを独自のものに置き換えていてUpstartが起動しないらしい。

以下の様な対策で現状は回避可能らしい。
http://n8.hatenablog.com/entry/2013/08/19/155751

でも、openssh-serverでは回避できなかった。
他の方法があるらしい。
http://docs.docker.io/en/latest/examples/running_ssh_service/

まとめ

なんていうか、普段Vagrantとかだと何も考えずに使えるので、そうじゃないのがちょっとつらい感じ。
やっぱり、コンテナ型もそうじゃないのもメリット・デメリットがあるなと感じた。
でも、単純に一個のアプリをコンテナで動かすとかそういうことも出来るようなので、
そういう用途とかだといいと思う。

例えば、PaaSっぽいサービスで、アプリのコード渡したらDockerのコンテナの中で動くとか、 そういう感じに使えそうだと思いました。
(既にやってそうな気もしますけど。)
後は、起動も早いのでChefのcookbookとかAnsibleのplaybookを作るときに使うのは良さそう。

以上、非常に雑にDockerを試してみた感想でした。
また、時間とやる気がとれた時にいろいろ試してみたいと思います。