10 分で試せる lxd 0.3
このエントリの情報は古いです
(2015/04/08 追記) ubuntu-lxc の PPA の構成が変わっていますので、以下の add-apt-repository コマンドの例はそのまま実行できません。PPA の詳細は公式ページでご確認ください。
前回 (その1、その2) lxd を試したことを書いてからまだ 1 ヶ月も経ってませんが、使い方がかなりがらっと変わった lxd 0.3 がリリースされていますので試してみました。0.2 からこんな感じだったようですが。
インストール
面倒なので Ubuntu 14.04.2 に lxd の PPA を追加してパッケージインストールしました。
ubuntu@lxd01:~$ sudo add-apt-repository ppa:ubuntu-lxc/lxd-daily ubuntu@lxd01:~$ sudo apt-get update ubuntu@lxd01:~$ sudo apt-get install lxd
ubuntu@lxd01:~$ dpkg -l lxd :(snip) ||/ Name Version Architecture Description +++-==============-============-============-================================= ii lxd 0.3-0ubuntu1 amd64 Container hypervisor based on LXC
必要な設定もされていますし lxd も起動しています。ここでは ubuntu ユーザで試してます。
- lxd デーモンは起動済み。"lxd" グループに属するユーザが lxd デーモンに接続できます。
ubuntu@lxd01:~$ ps ax | grep lxd
1085 ? Ssl 0:01 /usr/bin/lxd --group lxd
1179 ? Ss 0:00 /usr/bin/lxd --group lxd - "ubuntu" ユーザは手元では "sudo" グループに属しているので (という条件だったと思う)、自動的に "lxd" グループに所属してます
ubuntu@lxd01:~$ id
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lpadmin),111(sambashare),113(lxd) - rootで非特権コンテナを動かすためにsubuid/subgidにrootが追加済み
ubuntu@lxd01:~$ cat /etc/subuid /etc/subgid
ubuntu:100000:65536
lxd:100000:65536
root:100000:65536
ubuntu:100000:65536
lxd:100000:65536
root:100000:65536
イメージの登録
lxd は自身に登録されたイメージからコンテナを作ります。lxd にイメージを登録するには、今の所(?) lxc 用のイメージをダウンロードしてきて変換するようです。lxc 用のイメージは images.linuxcontainers.org にあります。(lxc-create の download テンプレートが使うイメージ)
では、イメージを作りましょう(取得&変換&登録)。今の所 lxd-images というスクリプトがインストールされているのでそれを使います。Plamo 5.x の 64bit 版コンテナを使いましょう。イメージにエイリアスが付与できるようです (plamo, plamo/5.3, plamo/5.3/x86_64 という3つのエイリアスを付けた)。
ubuntu@lxd01:~$ lxd-images import lxc plamo 5.x amd64 --alias plamo --alias plamo/5.3 --alias plamo/5.3/x86_64 Downloading the GPG key for https://images.linuxcontainers.org Downloading the image list for https://images.linuxcontainers.org Validating the GPG signature of /tmp/tmp1dkupz2k/index.json.asc Downloading the image: https://images.linuxcontainers.org/images/plamo/5.x/amd64/default/20150310_21:36/lxd.tar.xz Validating the GPG signature of /tmp/tmp1dkupz2k/plamo-5.x-amd64-default-20150310_21:36.tar.xz.asc Image imported as: 58ea935fd2ce326279a97d711b6a7c50419a638db1423b5ba21c3496c55f0c04 Setup alias: plamo Setup alias: plamo/5.3 Setup alias: plamo/5.3/x86_64
イメージの確認
ubuntu@lxd01:~$ lxc image list +-------+----------+--------+-------------+ | ALIAS | HASH | PUBLIC | DESCRIPTION | +-------+----------+--------+-------------+ | plamo | 58ea935f | no | | +-------+----------+--------+-------------+
コンテナの作成と起動
イメージからコンテナを作成して起動します。"plamo" イメージから "plamo01" コンテナを作成して起動。
ubuntu@lxd01:~$ lxc launch plamo plamo01 Creating container...done Starting container...done
起動の確認。
ubuntu@lxd01:~$ lxc list +---------+---------+----------------------+------+ | NAME | STATE | IPV4 | IPV6 | +---------+---------+----------------------+------+ | plamo01 | RUNNING | 10.0.3.70, 127.0.0.1 | ::1 | +---------+---------+----------------------+------+ ubuntu@lxd01:~$ lxc info plamo01 Name: plamo01 Status: RUNNING Init: 1191 Ips: eth0: IPV4 10.0.3.70 lo: IPV4 127.0.0.1 lo: IPV6 ::1
コンテナ内でコマンドを実行してみましょう。これは前のエントリと同じです。
ubuntu@lxd01:~$ lxc exec plamo01 -- uname -a Linux LXC_NAME 3.13.0-46-generic #77-Ubuntu SMP Mon Mar 2 18:23:39 UTC 2015 x86_64 GNU/Linux ubuntu@lxd01:~$ lxc exec plamo01 -- lsb_release -a LSB Version: n/a Distributor ID: Plamo Description: Plamo Linux release 5.3.1 Release: 5.3.1 Codename: n/a