Dateisystem des Containers auf meinem Host mounten

Dateisystem des Containers auf meinem Host mounten

Ich habe eine Software in einem Container erstellt (mit Podman) und möchte die Binärdatei auf meinem Host ausführen. Die Binärdatei ist mit einigen dynamischen Bibliotheken verknüpft, die ich nicht auf meinem Host habe. Ich dachte, eine schnelle Hack-Lösung wäre, das Dateisystem des Containers auf meinem Host zu mounten und die Binärdatei dort nach Bibliotheken suchen zu lassen (zum Beispiel mit LD_LIBRARY_PATH).

Wie kann ich das Dateisystem des Containers auf meinem Host mounten/anzeigen?

Antwort1

Schreiben Sie benutzerdefinierte Pakete, die das Programm und seine Abhängigkeitsbibliotheken enthalten. rpm, deb, apk, was auch immer. Erstellen Sie diese in einem minimalen Chroot, z. B. Mock, um rpm zu erstellen. Installieren Sie sie auf dem Host. Eine solche Verpackung hat den Vorteil, dass der Linker nicht geändert werden muss.

Wenn Sie dieses Container-Image wirklich verwenden möchten, wäre es natürlicher, es als Basis für einen anderen Container wiederzuverwenden.

Ja, es ist möglich, das Image irgendwo zu mounten und vielleicht einen symbolischen Link zu den relevanten Bibliotheken zu erstellen /usr/local/lib64. Allerdings erhöht das die Komplexität eines separaten Speichers für diese Anwendung, ohne die Sicherheitsvorteile eines Containers (Podman) oder einer Sandbox-Anwendung (Snap, Flatpak) mit nicht standardmäßigen Wartungsverfahren.

verwandte Informationen