Skip to content

Warum fordert der Docker-Container "Berechtigung verweigert" auf?

Lösung:

Eine verweigerte Berechtigung innerhalb eines Containers für ein freigegebenes Verzeichnis kann daran liegen, dass dieses freigegebene Verzeichnis auf einem Gerät gespeichert ist. Standardmäßig können Container nicht auf Geräte zugreifen. Hinzufügen der Option $docker run --privileged ermöglicht den Zugriff auf den Container alle Geräte und führt Kernel-Aufrufe aus. Dies gilt nicht als sicher.

Eine sauberere Methode zum Teilen von Geräten ist die Verwendung der Option docker run --device=/dev/sdb (wenn /dev/sdb ist das Gerät, das Sie teilen möchten).

Von der Manpage:

  --device=[]
      Add a host device to the container (e.g. --device=/dev/sdc:/dev/xvdc:rwm)

  --privileged=true|false
      Give extended privileges to this container. The default is false.

      By default, Docker containers are “unprivileged” (=false) and cannot, for example, run a Docker daemon inside the Docker container. This is because by default  a  container is not allowed to access any devices. A “privileged” container is given access to all devices.

      When  the  operator  executes  docker run --privileged, Docker will enable access to all devices on the host as well as set some configuration in AppArmor to allow the container nearly all the same access to the host as processes running outside of a container on the host.

Ich hatte ein ähnliches Problem, als ich einen NFS-Mount-Punkt als Volume mit docker-compose freigab. Ich konnte das Problem lösen mit:

    docker-compose up --force-recreate

Auch wenn Sie das Problem gefunden haben, kann dies jemand anderem helfen.

Click to rate this post!
[Total: 0 Average: 0]



Anderer Beitrag

Binomialkoeffizient in Andrews' Partitionsbuch

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.