Lvm

在 LVM 上的主機和 LXC 容器之間傳輸文件的簡單方法

  • June 22, 2018

對於共享相同文件系統的容器來說,這是一項簡單的任務,但我不確定對於使用 LVM 磁碟的容器來說什麼是正確的方法。

我知道我可以使用rsyncscp但我想知道是否可以在不設置ssh//伺服器的情況下執行此操作ftphttp此外,能夠在不修改容器配置的情況下傳輸文件會很好,因為它需要重新啟動容器。避免永久掛載的共享文件夾是個好主意,因為這些可能會帶來潛在的安全風險(應該可以使用輕鬆掛載/解除安裝選項)。

我想到的一個選項是在主機上使用 WebDAV 伺服器並將其掛載到容器中,但我還沒有分析它,我不確定它可能帶來的性能損失。我想到的其他選擇是在主機上安裝 LVM 分區,但我不確定這是否安全。

更新

在我的配置中,我使用以下命令創建容器:

lxc-create -t ubuntu -n "${NAME}" -B lvm --vgname lxc-vg --fssize "${SIZE}"

我正在使用預設配置,除了通過在文件中添加以下行來實現的自動啟動功能/var/lib/lxc/${NAME}/config

lxc.start.auto = 1
lxc.start.delay = 0

修改後的答案:LXC 容器與主機共享相同的核心,因此它們掛載的任何文件系統都應該可以從外部訪問。

如果你cat /proc/mounts在主機上做一個,你能看到容器文件系統嗎?

如果您看到這樣的行,/dev/mapper/... /var/lib/lxc/o1/rootfs ext4 ...那麼您應該能夠/var/lib/lxc/o1/rootfs從主機訪問,而無需任何進一步的命令。

我知道這是一個老問題,但是對於在搜尋如何在主機和容器之間複製文件時最終來到這裡的人來說,這可能會有所幫助。

要將文件 ‘my-file’ 從容器 ‘container-name’ 拉到目前文件夾,請使用:

lxc file pull container-name/any-path/my-file .

要推送“我的文件”,請使用:

lxc file push my-file container-name/any-path/

要遞歸推送文件夾“my-dir”,請使用:

lxc file push -r my-dir container-name/any-path/

引用自:https://serverfault.com/questions/674762