Docker, dela lokal mapp/drive med container

Permalänk
Medlem

Docker, dela lokal mapp/drive med container

Hej, har sprungit på lite problem på min docker burk som jag inte vet hur jag ska komma runt. Vad jag förstått har jag gjort allt rätt men det blir ändå inte som jag tänkt.

Jag har en drive på /dev/sdb1 som jag mountat till /mnt/storage, i denna har jag mappar och filer. Roten på den innehåller
stevens-blog/
nginx/

Så jag startar en ny docker container med
docker run -it --name ubuntu2 -v /mnt/storage:/storage ubuntu /bin/bash

Och går sedan till /storage i containern och kör ls -la och får bara en tom mapp.
Jag skapar sedan en mapp "hej" däri och avslutar och tar bort containern med docker rm ubuntu2.

Startar jag sedan upp en ny container med samma run kommando ser jag "hej" mappen i /storage.

Avslutar jag sedan och går till hosten och kör ls -la på /mnt/storage ser jag fortfarande som förväntat.
stevens-blog/
nginx/

Så nu undrar jag vad som egentligen händer.. Varför syns inte mina filer i /mnt/storage i containers och var i tusan sparas det som containers lägger i den mappen då jag inte ser det på hosten sen.

Edit: Kan tillägga att jag testat att köra både root och användaren som kör docker som ägare på /mnt/storage och allt däri utan framgång.

Edit2: Jag använder RancherOS som host os om det kan hjälpa till.

Visa signatur

/dev/null

Permalänk
Medlem

Vild gissning är stavfel i hostdir. Testa att söka efter hej för att se vart den hamnade.

Permalänk
Medlem

@aluser:

Du fick mig iallafall i rätt riktning. När jag söker i hosten efter en fil "hej.txt" jag skapade från containern hittar jag följande resultat, nu måste jag bara komma på varför den lägger de där istället...

/var/lib/system-docker/overlay/4dd27c9eef166eebd18a4ca48799938de0476e077c87e96cbd65660e8a7eff04/merged/opt/storage/hej/hej.txt
/var/lib/system-docker/overlay/4dd27c9eef166eebd18a4ca48799938de0476e077c87e96cbd65660e8a7eff04/merged/var/lib/rancher/state/opt/storage/hej/hej.txt
/var/lib/rancher/state/opt/storage/hej/hej.txt

Visa signatur

/dev/null

Permalänk
Medlem

Efter att ha läst lite om docker run så fick jag för mig att -v= ger en bind mount som låter som direktaccess medans -v hostdir ger en datavolume som förvisso borde vissa det innehållet från orginalet.

Finns dessutom en gammal bugg där mounts blev felaktiga om dom gjordes efter docker daemon startades.

Permalänk
Medlem

Efter att ha svurit länge nog flyttade jag från RancherOS till att köra Docker på Ubuntu Server istället och då fungerar allt klanderfritt.

Visa signatur

/dev/null