Berechtigungsprobleme mit Docker unter Arch LinuxLinux

Linux verstehen
Guest
 Berechtigungsprobleme mit Docker unter Arch Linux

Post by Guest »

Betriebssystem: Arch Linux – KDE Plasma (Wayland)
Ich versuche, meinen Webbrowser (Zen Browser) zu „dockerisieren“. , weil ich es sehr nützlich finde, getrennte Instanzen davon zu haben, um den Zweck der einzelnen Instanz besser zu unterscheiden und zu privatisieren.

Ich habe Docker mit sudo pacman installiert -S docker und aktivierte dessen systemctl Service. Ich habe mich auch zu seiner Benutzergruppe hinzugefügt, um zu vermeiden, dass bei jedem Befehl immer „sudo“ verwendet wird.

Ich habe alles getan, damit meine NVIDIA-GPU funktioniert, sodass „--gpus all“ ordnungsgemäß funktioniert und die Standardlaufzeit für Docker „nvidia“ ist.

Ich habe erfolgreich eine erste Webbrowser-Instanz eingerichtet, dann habe ich beschlossen, mit allen anderen fortzufahren, also habe ich die Schritte wiederholt ...aber es ist nicht gut gelaufen, ich habe einen seltsamen Fehler erhalten, der möglicherweise mit den Berechtigungen zusammenhängt.

Ich habe eine Datei namens „ Dockerfile' in "/home/Containers/Browsers/TLXS/Zen Browser/" mit den Anweisungen zur Bilderstellung.

Code: Select all

FROM archlinux:latest

# Install dependencies
RUN pacman -Syu --noconfirm && \
pacman -S --noconfirm \
libx11 libxrender libxtst gtk3 tar alsa-lib alsa-utils pipewire pipewire-alsa

# Set working directory to the mounted host directory
WORKDIR "/home/Containers/Browsers/TLXS/Zen Browser"

# Run the browser binary when the container starts
CMD ["./zen/zen-bin"]
Ich kann das Image erfolgreich erstellen, indem ich „docker buildx build -t tlxs_zen-browser“ ausführe., aber dann wenn ich versuche, den Container zu starten mit der Befehl

Code: Select all

docker run -it --gpus all --name tlxs_zen-browser -v "/home/Containers/Browsers/TLXS/Zen Browser:/home/Containers/Browsers/TLXS/Zen Browser:rw" -e NVIDIA_DRIVER_CAPABILITIES=all -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/tmp -v /tmp/.X11-unix:/tmp/.X11-unix -v /run/user/1000/pipewire-0:/tmp/pipewire-0 tlxs_zen-browser
Ich habe diesen Fehler erhalten:

Code: Select all

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: exec: "./zen/zen-bin": stat ./zen/zen-bin: no such file or directory: unknown.
[/b]
Eigentlich ist die Datei „/zen/zen-bin“ da, und das kommt mir seltsam vor, weil ich Ich habe das schon einmal gemacht und es hat funktioniert! Dies ist die Ausgabe des Befehls ls -l, im Grunde die gleiche Ausgabe, die ich erhalte, wenn ich ihn im Ordner der ersten Instanz mit denselben Berechtigungen ausführe auf die aufgelisteten Dateien angewendet:

Code: Select all

total 4
-rw-r--r-- 1   371  Dockerfile
drwxr-xr-x 1   912  zen
Ich weiß nicht, ob ich schon einmal etwas mit Berechtigungen gemacht habe, damit das funktioniert. Ich erinnere mich ehrlich gesagt nicht mehr, aber es kommt mir seltsam vor, weil ich glaube, dass ich alles gemacht habe die erforderlichen Schritte, die gleichen wie zuvor!

Warum heißt es, dass es keine Datei „/zen/zen-bin“ gibt, wenn die Dockerfile-Anweisungen mit denen im anderen Ordner identisch sind? Auch die Datei „/zen/zen-bin“ befindet sich an derselben Position!


TL;DR

Das Konzept:

Meine Idee ist, so etwas wie Sandboxie nachzubilden. Plus-Boxen (Sandboxie-Plus ist eine Sandbox-Umgebungs-App für Windows, in der Sie für jede von Ihnen erstellte Box Folgendes erhalten: ein dedizierter und isolierter Ordner, auf den Sie zugreifen und dessen Dateien anzeigen können).

Ich habe in meinem Verzeichnis „/home/“ einen Ordner „Container“ erstellt und darin dann einen Ordner namens „Browser“ – es handelt sich um die „Box“ für den Hauptbrowser Instanz- und einen Ordner „Browser“, in dem ich alle verschiedenen „Boxen“ für andere Browserinstanzen erstelle.

Die Felder lauten also „Browser“ in "/home/Containers/" und „TLXS“, „BFTW“, „GDSV“ usw. (umgangssprachliche 4-stellige Namen). ) in *"/home/Containers/Browsers/".

/home/Containers/

---Browser

------Zen Browser

---Browser

------TLXS

---------Zen Browser

------BFTW

---------Zen Browser

------GDSV

---------Zen Browser

Ich hätte gerne alle Dateien der App, die ich dockerisiere, direkt dort in diesen Ordnern meines Dateisystems verfügbar und vollständig zugänglich, aber im Moment war ich dazu nicht in der Lage Mach das. Sie werden irgendwie ausgeblendet, wenn ich das Dateisystem mit dem Dateimanager durchsuche.


Was ich bisher gemacht und gearbeitet habe:
  • setze meine Position im Terminal auf "/home/Containers/Browser/Zen Browser"

    erstellte Datei „Dockerfile“ in "/home/Containers/Browser/Zen Browser";

Code: Select all

FROM archlinux:latest

# Install dependencies
RUN pacman -Syu --noconfirm && \
pacman -S --noconfirm \
libx11 libxrender libxtst gtk3 tar alsa-lib alsa-utils pipewire pipewire-alsa

# Set working directory to the mounted host directory
WORKDIR "/home/Containers/Browser/Zen Browser"

# Run the browser binary when the container starts
CMD ["./zen/zen-bin"]
  • Verschoben den Tarball „zen.linux-x86_64.tar.bz2“ mithilfe des Dateimanagers nach "/home/Containers/ Browser/Zen Browser“ und entpackte es, sodass ich seinen Inhalt erhielt, einen Ordner namens „zen“ mit allen Dateien, die zum Ausführen des Webbrowsers erforderlich sind;
  • erbaute die Erstellen Sie das Bild „browser_zen-browser“, indem Sie

    ausführen

    Code: Select all

    docker buildx build -t browser_zen-browser .
  • Sie haben Docker die Berechtigung erteilt, mit dem Befehl

    auf den X11-Anzeigeserver zuzugreifen

    Code: Select all

    xhost +local:docker
  • Führen Sie einen Container aus (und benennen Sie ihn) mit dem Befehl

    Code: Select all

    docker run -it --gpus all --name browser_zen-browser -v "/home/Containers/Browser/Zen Browser:/home/Containers/Browser/Zen Browser:rw" -e NVIDIA_DRIVER_CAPABILITIES=all -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/tmp -v /tmp/.X11-unix:/tmp/.X11-unix -v /run/user/1000/pipewire-0:/tmp/pipewire-0 browser_zen-browser
Wenn Sie alle diese Schritte ausführen, wurde der Container erfolgreich ausgeführt und der Webbrowser wurde ordnungsgemäß gestartet . Wenn ich es schließe, kann ich es mit dem Befehl

neu starten

Code: Select all

docker start browser_zen-browser
.

Da ist es das Problem!

Jetzt muss ich die gleichen Schritte ausführen und meine anderen „Boxen“ unter "/home/Containers/Browsers/" erstellen.

Also habe ich versucht, mit einem zu beginnen, zum Beispiel „TLXS“, aber nachdem ich die Docker-Datei erstellt, den Tarball-Inhalt extrahiert und das Image erstellt habe, kann ich es nicht ausführen.

Ich befinde mich unter "/home/Containers/Browsers/TLXS/Zen Browser", dort befinden sich zwei Elemente, die Datei „Dockerfile“ und der Ordner „ Zen'. Dies ist die Ausgabe des Befehls ls -l:

Code: Select all

total 4
-rw-r--r-- 1   371  Dockerfile
drwxr-xr-x 1   912  zen
und es ist im Grunde die gleiche Ausgabe, die ich bekomme, wenn ich den Befehl ls -l im "/home/Containers/Browser/Zen Browser" Ordner, mit den gleichen Berechtigungen, die auf die aufgelisteten Dateien angewendet werden.

Trotzdem, wenn ich den Befehl

ausführe

Code: Select all

docker run -it --gpus all --name tlxs_zen-browser -v "/home/Containers/Browsers/TLXS/Zen Browser:/home/Containers/Browsers/TLXS/Zen Browser:rw" -e NVIDIA_DRIVER_CAPABILITIES=all -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/tmp -v /tmp/.X11-unix:/tmp/.X11-unix -v /run/user/1000/pipewire-0:/tmp/pipewire-0 tlxs_zen-browser
es gibt diesen Fehler:

Code: Select all

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: exec: "./zen/zen-bin": stat ./zen/zen-bin: no such file or directory: unknown.
Aber die Datei „zen-bin“, die sich im Ordner „zen“ befindet, ist sicherlich da!

Ich denke also, dass es sich um ein Problem mit Docker handelt, da die Datei aus irgendeinem seltsamen Grund nicht angezeigt werden kann.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post