我在容器中构建了一些软件(使用 Podman),并希望在我的主机上运行二进制文件。二进制文件链接到一些我的主机上没有的动态库。我认为一个快速的黑客解决方案是将容器的文件系统挂载到我的主机上,并让二进制文件在其中查找库(例如使用LD_LIBRARY_PATH
)。
如何在主机上挂载/查看容器的文件系统?
答案1
编写自定义包来包含程序及其依赖库。rpm、deb、apk 等等。在最小 chroot 中构建这些包,例如 mock 来构建 rpm。在主机上安装。这样的打包方式具有无需更改链接器等优点。
如果您确实想使用该容器映像,则更自然的做法是将其重新用作另一个容器的基础。
是的,可以将镜像挂载到某处,并将相关库符号链接到 /usr/local/lib64
。但是,这增加了此应用程序单独存储的复杂性,没有容器(podman)或沙盒应用程序(snap、flatpak)的安全优势,并且维护程序不标准。