Ubuntu 14.04でlxd 0.3を試した時のメモ

追記(2015/03/17):lxc-console的なものはまだなさそう、と書きましたが、lxc execすればよかっただけでした。すみません。試してみた結果はこちらです:Ubuntu 14.04でlxd 0.3を試した時のメモ その2:lxc exec, lxc config - Technically, technophobic.


lxcは-nオプションをいちいちつけないといけないのがめんどくさすぎる!と俺の中で有名ですが、lxdにはちょっと希望が見えます。

lxdは、REST APIでコンテナを管理するためのデーモンです。で、ローカルにlxdを立てればこれのクライアントコマンドlxcが利用できて、これまで

lxc-start -n foo
lxc-info -n foo

とかやってたのが、

lxc start foo
lxc info foo

とかできます。まあ、だから何?って感じもしますけど。。

とりあえずやったとこをメモ。

インストール

このへん:Getting started with LXD

ドキュメント通りレポジトリを追加してインストールするだけです。

sudo add-apt-repository ppa:ubuntu-lxc/lxd-daily && sudo apt-get update
sudo apt-get install lxd

lxdにイメージを読み込む

このへん:First steps

ドキュメントにはscripts/lxd-imagesと書いてますが、apt-getでインストールしたらscripts/にはパスが通るみたいなので、lxd-imagesだけで大丈夫です。

sudo lxd-images import lxc ubuntu trusty amd64 --alias ubuntu \
    --alias ubuntu/trusty --alias ubuntu/trusty/amd64

確認。ubuntuがリストに表示されるはずです。

$ sudo lxc image list
+--------+----------+--------+-------------+
| ALIAS  |   HASH   | PUBLIC | DESCRIPTION |
+--------+----------+--------+-------------+
| ubuntu | 8d39d97e | no     |             |
+--------+----------+--------+-------------+

コンテナを立ち上げてみる

launchで新しくコンテナがつくられます。

lxc launch ubuntu foo

確認。こんな感じのが出るはずです。

$ sudo lxc list
+-------------------+---------+-----------------------+------+
|       NAME        |  STATE  |         IPV4          | IPV6 |
+-------------------+---------+-----------------------+------+
| foo               | RUNNING | 10.0.3.245, 127.0.0.1 | ::1  |
+-------------------+---------+-----------------------+------+

コンテナにログインしようとしてみる

さて、ここからが問題です。lxcのサブコマンドにはまだlxc-consoleに相当するものはありません。

とりあえずsshしてみると…

$ ssh 10.0.3.245
ssh: connect to host 10.0.3.245 port 22: Connection refused

やっぱだめですよね。。

仕方ないので、lxc-consoleしてみます。lxdは通常のlxc-*が使っているのと別の場所にコンテナを作っているので-Pで指定してやる必要があります。

$ sudo lxc-console -P /var/lib/lxd/lxc -n foo

で、ログイン画面が出ます。lxc-createで作った場合はログイン名・パスワードともに「ubuntu」なのでそれを試してみると…

Login incorrect

むうう。そもそも、ログインできるところまでコンテナを作りこむ力がlxdにはまだないっぽいです。

また半年後くらいに試そうかな、という感じですね。