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?
| Type | Kenmerk | Eerste check |
|---|---|---|
| Bind mount | Een expliciete hostmap is gekoppeld aan een containerpad. | Bestaat de hostmap, is de route correct en mag de containergebruiker schrijven? |
| Named volume | Docker beheert de onderliggende opslaglocatie. | Controleer de volumemount en de identiteit/rechten van de app binnen het volume. |
| Read-only mount | De 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
- Maak een kopie van de oorspronkelijke projectinstellingen.
- Pas één mount, gebruikers-ID of share-permissie gericht aan.
- Start alleen het betreffende project opnieuw volgens de app-instructies.
- Controleer het log op dezelfde foutmelding.
- 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
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.