注意:この質問は直接的にこれですそして特にこの答えただし、重複ではありません。
ホストのフォルダーをゲストと共有したいのですが、ゲストのルートが誤ってそのフォルダーに書き込むことができないようにする必要があります。
私の場合、フォルダーは/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
技術的には、ホスト レベルで読み取り専用のものはすべて、コンテナー内でも読み取り専用のままにする必要があります。