web-dev-qa-db-ja.com

chroot間でディレクトリを共有する方法

私は複数の chroots を持っており、VMの軽量な代替手段としてソフトウェアバージョンのセットが異なります。

VM間でディレクトリを共有するにはどうすればよいですか?当然、シンボリックリンクはchrootをエスケープすることを許可しません。確かに、各chrootに(nfsなどを介して)ネットワーク共有をマウントすることはできますが、それはかなりのオーバーヘッドとセキュリティの考慮事項を課しますね。

3
phihag

Linuxの場合–バインドマウント

mount --bind /orig /vm/one
mount --bind /orig /vm/two
mount --rbind /media /vm/one/media

/proc/devの共有は、これの最も一般的な使用法です(ただし、/ devには必ず--rbindを使用してください)。読み取り専用の-o roを追加することもできます。

マウントを永続的にするには、/etc/fstabを更新します。

/orig   /vm/one     none    bind
/orig   /vm/two     none    bind,ro

VMのバインドマウントの使用を開始すると、すぐに名前空間とコンテナーの奥深くにいることに気付くでしょう。 (たとえば、1つのコマンドで分離されたネットワークを持つchrootを持つことができます...)ネイティブを使用するlxcを見てください仮想システムを作成するためのLinux機能。

5
user1686