lxcとaufsで仮想マシンを色々と便利に使えるDockerを JoyentのUbuntuVMで使う方法。
基本的にEC2の案内と同じですけど、一部コツがあります。
OSの下ごしらえ
Ubuntu12.04のVMを使います。
‘/tmp’のアクセス権
VMのリリースバージョンにもよりますが、’/tmp’にstickey bitが立ってない(0755)ものがあります。
何をするにも普通に困るので変更しておきます。
chmod 01777 /tmp
マウント調整
JoyentのVMはルートデバイスが小さめで、’/data’にマウントする形でボリュームが追加されています。
容量をあまり気にしないで使うために、bind mount
を使ってマウントポイントを調整します。
既存ディレクトリ移動とマウント
/var, /opt, /home
あたりを移動してしまえばよいでしょう。
mv /var /data/ ;mkdir /var; mount --bind /data/var /var
mv /home /data/ ;mkdir /home; mount --bind /data/home /home
mv /opt /data/ ;mkdir /opt; mount --bind /data/opt /opt
fstabに追記
cat << EOL >> /etc/fstab
/data/var /var none bind 0 0
/data/opt /opt none bind 0 0
/data/home /home none bind 0 0
EOL
一回再起動しておきましょう。
AUFS対応カーネルの導入
あとは公式のInstation:Ubuntu Linuxの12.04に従っていきます。
カーネル変更
デフォルトのカーネルはLinux 3.8.6-joyent-ubuntu-12-opt
と新しいのですが、aufsモジュールがありませんので変更します。
apt-get update && sudo apt-get install linux-image-generic-lts-raring
カーネルパッケージのインストールが終わったら、
/etc/default/grub
で GRUB_DEFAULT=2
にして update-grub
をかけます。
ちなみに0がLinux 3.8.6-joyent
で、1はLinux 3.8.6-joyent(Recovery Mode)
なので気をつけましょう。
update-grub
後に再起動するまえには必ず/boot/grub/grub.cfg
を確認しておくことをお奨めします。
Dockerのインストール
3.8.0-xx-generic
のカーネルで起動したら、aufsモジュールをロードします。
modprobe aufs
あとはdotcloudのpptリポジトリを登録し、lxc-docker
パッケージをインストールするだけです。
apt-get install python-software-properties && sudo add-apt-repository ppa:dotcloud/lxc-docker
apt-get update
apt-get install lxc-docker
Docker Run!
GettingStartedの締めとして、Ubuntuコンテナを起動してみましょう。
docker run -i -t ubuntu /bin/bash
コンテナが起動して、ログイン状態になります。
他のシェルを立ち上げてからdocker ps
で確認します。
# docker ps
ID IMAGE COMMAND CREATED STATUS PORTS
0b51168a6cf3 ubuntu:12.04 /bin/bash 31 minutes ago Up 31 minutes
OKですね。