株式会社クリアコード > ククログ

ククログ


LXCコンテナにホスト側のユーザをバインドする方法

LXCコンテナを作ったとき、毎回自分の設定をコピーするのは面倒です。 dotfilesを変更する度にLXCコンテナ側に設定を反映するのは特に面倒です。

Ubuntuコンテナを作るときは--bindhomeオプションを付けることで自動的にユーザを追加することができます。 しかし、他のディストリビューション向けのテンプレートにはそのような機能はありません。 そこで、手動でホスト環境にいる自分ユーザをコンテナ側に追加してホームディレクトリを共有する手順を紹介します*1

ここではFedora18のコンテナを使って説明します*2

まず、コンテナを作成します。

$ sudo lxc-create -t fedora -n f18 -- --release 18 --arch x86_64

次にコンテナに追加したいユーザのuid/gidを調べます。

$ id -u
$ id -g

この2つの値を覚えておきます。ここではuid=1000,gid=1000とします。 また、ユーザ名とグループ名はfedoraとします。

コンテナにグループを追加してから、ユーザを追加します。

$ sudo chroot /var/lib/lxc/f18/rootfs groupadd --gid=1000 fedora
$ sudo chroot /var/lib/lxc/f18/rootfs useradd --uid=1000 --gid=fedora --create-home -s /bin/bash fedora

パスワードを設定します。ここではパスワードもfedoraにしてあります*3

$ echo "fedora:fedora" | sudo chroot /var/lib/lxc/f18/rootfs chpasswd

ホームディレクトリを共有するための設定をコンテナに追加します。

$ sudo sh -c "echo '/home/fedora home/fedora none bind 0 0' >> /var/lib/lxc/f18/fstab"

追加したいユーザの分だけ、この手順を繰り返します。 これでコンテナを起動すると、追加したユーザが使えるようになっています。

まとめ

LXCコンテナにホスト側のユーザをバインドする方法を紹介しました。

*1 Ubuntuテンプレートでやっていることを手動でやります

*2 LXCのバージョンは1.0を想定しています

*3 /etc/shadowのエントリをコピーすればパスワードもホスト環境と同じものを使うことができます。

2014-08-06

«前の記事: LXCコンテナに名前でアクセスする方法 最新記事 次の記事: RubyKaigi 2014にスピーカー・スポンサーとして参加予定»
タグ:
年・日ごとに見る
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|