我正在寻找一种从主机访问容器根文件系统的方法。虽然我可以使用传递给 lxc.rootfs 的目录,但它没有容器所具有的挂载,因此只有空目录而不是挂载。有没有办法获取与容器根目录相同的文件树?
谢谢 :)
答案1
我使用以下方法进行备份rsync
:
使用容器的 init 进程的 pid,你可以使用以下命令获取它
# list all hosts:
lxc-ls -f -Fname,pid
# or get pid of one host:
lxc-ls -f -Fpid mycontainer
PID
-----
13323
使用此信息,您可以使用 /proc 文件系统访问主机的 rootfs。
cat /proc/13323/root/etc/hostname
# returns: "mycontainer"
答案2
我能找到的最佳解决方案是在主机和容器内应用相同的挂载(通过 lxc.mount[.entry])。主机的挂载不会传输到容器,因为容器与主机的挂载完全隔离。
答案3
这lxd 存储挂载位置主机上的情况可能会有所不同,具体取决于您是否使用 snap 包。snap 还使用不同的挂载命名空间,因此您必须通过 mntns 目录访问它:
#Non snap location on host:
ls /var/lib/lxd/storage-pools/STORAGE_POOL_NAME/containers/CONTAINER_NAME/rootfs/
#Snap location on host:
ls /var/snap/lxd/common/mntns/var/snap/lxd/common/lxd/storage-pools/STORAGE_POOL_NAME/containers/CONTAINER_NAME/rootfs/