LXCって基本がchrootなわけだから、 やっぱり合理的なのは同じディストリビューション なんだと思う。
でも現実には違うディストリビューションとか使いたいってのは当然あるわけ。
といってもlxcを既に使ってる環境なら、特に難しいものはないわ。
$ sudo lxc-create -t ubuntu -n testu01
これだけ入れて、あとはひたすら待てばいい。
ちなみに、うちの環境では Ubuntu12.04が作られちゃったから、14.04経由で16.04にした。それだけは計算違いね。
というわけで、明示的にバージョン指定もしてみましょう。
$ sudo lxc-create -t download -n utest01 -- -d ubuntu -r xenial -a amd64 : : $
できたかも。ログインしてみるね。
ああでも、パスワードがどうのって出てきたかしら。じゃあ、こうしてみる?
$ sudo vim /var/lib/lxc/utest01/rootfs/etc/shadow
ubuntu:!:17148:0:99999:7:::
上の「!」マークを消してからログインすると、パスワードを聞かれないからね。 で、改めてログイン。
Ubuntu 16.04.1 LTS utest01 console utest01 login: ubuntu Last login: Tue Dec 13 01:41:58 UTC 2016 from 192.168.122.1 on pts/2 Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 3.16.0-4-amd64 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage ubuntu@utest01:~$
できたー!
もちろん、パスワードをセットしましょう。
$ passwd
ちなみにネットワークはこの通りなので対策が必要ね。
ubuntu@utest01:~$ /sbin/ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1184 (1.1 KB) TX bytes:1184 (1.1 KB) ubuntu@utest01:~$
一度停止してから、コンテナのconfigに以下を追加して。
lxc.network.type = veth lxc.network.flags = up lxc.network.link = virbr0 lxc.network.name = eth0 lxc.network.hwaddr = 00:16:3e:4f:b3:bf
hwaddrはもちろん、識別だから任意のものをね。未設定で勝手に割り当てしてもらうのが本当はいいのかな?
で、起動すると。
ubuntu@utest01:~$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:16:3e:4f:b3:bf inet addr:192.168.122.177 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::216:3eff:fe4f:b3bf/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:43 errors:0 dropped:0 overruns:0 frame:0 TX packets:30 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4071 (4.0 KB) TX bytes:3004 (3.0 KB)
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ubuntu@utest01:~$ /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.122.1 0.0.0.0 UG 0 0 0 eth0 192.168.122.0 * 255.255.255.0 U 0 0 0 eth0 ubuntu@utest01:~$
はい、できた。