Docker en rechten

Docker: permission denied op NAS

Een container die niet bij zijn gegevensmap kan, veroorzaakt foutmeldingen zoals 'permission denied', 'read-only file system' of 'cannot create directory'. Het lijkt soms op een kapotte container, maar vaak klopt het toegangspad of de identiteit van de containergebruiker niet.

Herken eerst welk pad een probleem geeft

Bekijk het containerlog in Container Manager of via de ondersteunde Docker-werkwijze. Noteer het volledige pad. Is het pad bijvoorbeeld een map op je NAS die in de container wordt gekoppeld, of is het een intern pad? Die twee kunnen verschillende toegangsrechten hebben.

Bind mount of Docker-volume?

TypeKenmerkEerste check
Bind mountEen expliciete hostmap is gekoppeld aan een containerpad.Bestaat de hostmap, is de route correct en mag de containergebruiker schrijven?
Named volumeDocker beheert de onderliggende opslaglocatie.Controleer de volumemount en de identiteit/rechten van de app binnen het volume.
Read-only mountDe map is bewust alleen-lezen gekoppeld.Moet de app hier schrijven? Pas alleen gericht de configuratie aan als dat nodig is.

Controleer identiteit en rechten

Een containerproces gebruikt vaak een eigen gebruikers-ID (UID) en groeps-ID (GID). Controleer de door de applicatie voorgeschreven user-instellingen en de rechten op de betreffende map. Een NAS-shareregel en Linux-bestandsrechten kunnen beide relevant zijn. In een compose-configuratie kunnen bijvoorbeeld een expliciete gebruiker, een mount en de applicatie-eigen paden staan.

Wat je niet moet doen

Geef niet zonder diagnose de hele schijf wereldwijde schrijfrechten met chmod -R 777. Verander evenmin massaal de eigenaar van alle NAS-mappen. Daarmee kun je andere containers, gedeelde mappen en persoonlijke data verstoren. Maak eerst een back-up, bepaal precies welk pad problemen geeft en wijzig alleen het noodzakelijke onderdeel.

Veilig controleren na een wijziging

  1. Maak een kopie van de oorspronkelijke projectinstellingen.
  2. Pas één mount, gebruikers-ID of share-permissie gericht aan.
  3. Start alleen het betreffende project opnieuw volgens de app-instructies.
  4. Controleer het log op dezelfde foutmelding.
  5. Probeer een testbestand te maken en terug te lezen, zonder productiegegevens te overschrijven.

Bij migraties naar een andere NAS kunnen UID/GID's verschillen. Controleer daarom bij terugzetten zowel de data als de rechten.

Verder lezen

Volumes back-uppen · Container start niet

Officiële informatie

Softwarefuncties en ondersteuning kunnen per NAS-model en versie verschillen. Controleer altijd de actuele documentatie voordat je gegevens wijzigt of hardware koopt.