追記(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
とかできます。まあ、だから何?って感じもしますけど。。
とりあえずやったとこをメモ。
インストール
ドキュメント通りレポジトリを追加してインストールするだけです。
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にはまだないっぽいです。
また半年後くらいに試そうかな、という感じですね。