LXC 2.x を使用してホスト フォルダーをゲストにマウントしますが、読み取り専用にしますか?

LXC 2.x を使用してホスト フォルダーをゲストにマウントしますが、読み取り専用にしますか?

注意:この質問は直接的にこれですそして特にこの答えただし、重複ではありません。

ホストのフォルダーをゲストと共有したいのですが、ゲストのルートが誤ってそのフォルダーに書き込むことができないようにする必要があります。

私の場合、フォルダーは/toolchainsホストとゲストの両方にあります。また、さまざまなプラットフォームをターゲットとするために使用される GCC ベースのツールチェーンが多数含まれています。

これで共有自体は簡単になりました。

lxc config device add CONTAINER toolchains disk source=/toolchains path=toolchains

技術的には、これはバインドマウントのようです。ただし、コンテナー内では、読み取り専用にするための再マウントは失敗します。

# mount -o remount,ro /toolchains
mount: cannot mount /dev/sda1 read-only

残念ながら、これでは詳細な情報は得られません。

念のため、次の代替案も試してみました:

# mount -o remount,ro,bind /toolchains
mount: cannot mount /dev/sda1 read-only

mount(8)以下で言及したmount --bind,ro foo foo...

目的を達成するにはどのようなオプションがありますか? つまり、ホスト フォルダーを読み取り専用としてゲストと共有します。ここで何らかのユニオン FS を使用する必要がありますか、それとも読み取り専用マウントを取得する唯一の本当のチャンスは、1) CIFS 共有を使用するか、2) 何らかのフックを使用して、mountホストからゲストのルートへのコマンドを介してホスト フォルダーをバインド マウントすることでしょうか?

LXC 2.20 を使用しています。

答え1

ホスト上でディレクトリを読み取り専用でバインドマウントし、それを LXC コンテナと共有するとどうなりますか?

mount --bind /toolchains /toolchains-ro
mount -o remount,ro,bind /toolchains-ro
lxc config device add CONTAINER toolchains disk source=/toolchains-ro path=toolchains

技術的には、ホスト レベルで読み取り専用のものはすべて、コンテナー内でも読み取り専用のままにする必要があります。

関連情報