使用 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

從技術上講,主機層級上只讀的所有內容在容器中都應保持唯讀。

相關內容