Docker har ej rättigheter till mapp

Permalänk
Medlem

Docker har ej rättigheter till mapp

Har installerat Ubuntu Server och kör Webmin som web gui. Allt fungerar så långt. Har även monterat en disk från min nas som jag kommer åt via webmin. Har också testat att skapa mappar och filer samt ta bort dessa från den monterade disken. Allt verkar fungera som det ska.

Nu till mitt problem. Jag har skapat en docker container där jag även vill ha tillgång till den monterade nas disken. Via docker har jag jag då valt att montera nas disken via ubuntu och vad jag kan se när min docker container kör så kopplas den ihop rätt. Jag kan se att den finns där och jag kan se tillgänglig utrymme som finns kvar. Men när jag via min docker container försöker att skriva till disken så får jag bara meddelande att jag inte har rättigheter till det.

Har försökt ett tag att klura på det men jag kan inte få till rättigheterna. Någon som kan hjälpa mig på vägen?

Permalänk
Medlem

Nu vet jag inte riktigt vad det är för container och vad syftet är med containern. Du kan köra `stat <katalognamn eller fil>` för att kolla ägaren av katalogen/filen som du försöker skriva till. Min gissning är att användaren som äger katalogen/filen inte finns i containern och att du måste återskapa den i containern för att får rätt rättigheter. Du bör undvika att skapa användaren manuellt i containern eftersom både namn, User ID och Group ID måste matcha. Jag brukar lösa detta på två olika sätt. Om jag är lat så kan man köra containern med `--pid host` då kör du i host-namespacet och då finns det nästan ingen skillnad mot att köra containerbinärerna på hosten. Alternativ två är att man volymmonterar resurserna som innehåller systemanvändare och grupper som read-only till containern och växlar användare. Jag brukar skapar enkla shellscript för att slippa köra det manuellt hela tiden.

Exempelvis

#!/bin/sh docker run -it \ -v /etc/passwd:/etc/passwd:ro \ -v /etc/group:/etc/group:ro \ -v /etc/shadow:/etc/shadow:ro \ -v /etc/gshadow:/etc/gshadow:ro \ -v $HOME:$HOME \ -u $(id -u):$(id -g) \ -w $HOME \ <container id>

Scriptet använder din användare och kan behöva ändras beroende på use-case och container men förhoppningsvis kan det ge lösningsinspiration.

Permalänk
Medlem

Tack! Ska kolla vidare med infon jag fick från dig.