blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS] においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

LXDのイメージを使って、systemd-nspawnでコンテナを起動する

前置き

いろいろなコンテナの規格がありますが、普段LXDとsystemd-nspawnを使っています。 systemdの方がコンセプト的に好きなのですが、LXDに比べるとまだユーザ体験では劣っている様に思えます。 まず、systemd-nspawnの場合、起動イメージをどっから持ってくればいいんだろうか、というところでめんどくさいので、イメージをLXDから持ってくることをやってみました。

環境

  • Ubuntu 16.04

install

$ sudo apt install lxd
$ sudo apt install systemd-container

download image

lxcコマンドを使ってイメージをダウンロードします。

$ mkdir xenial
$ lxc lxc image export images:ubuntu/xenial ./xenial
Output is in ./xenial
$ ls -l xenial
total 82M
-rw-rw-r-- 1 xx xx 668 Feb  4 20:47 lxd.tar.xz
-rw-rw-r-- 1 xx xx 82M Feb  4 20:48 rootfs.tar.xz

extract image

ダウンロードしたイメージを展開します。

$ cd xenial
$ mkdir rootfs
$ tar xJvf rootfs.tar.xz -C rootfs
$ sudo systemd-nspawn -D rootfs

start container

下記のコマンドで上記までで用意したrootfsでコンテナを起動できます。

$ sudo systemd-nspawn -D rootfs
Spawning container rootfs on /home/xx/xenial/rootfs.
Press ^] three times within 1s to kill container.
Failed to create directory /home/xx/xenial/rootfs/sys/fs/selinux: Read-only file system
Failed to create directory /home/xx/xenial/rootfs/sys/fs/selinux: Read-only file system
root@rootfs:~#

参考