Hantera volymer

Istället för att kopiera datan fram och tillbaka kan vi använda volymer. En lokal mapp kan då mappas mot en virtuell mapp inuti containern.

#Mapp att dela

Utgångsläget är att vi har en mapp vi vill kunna nå från containern. Jag väljer att skapa mappen share:

$ mkdir share

Min tanke är att vi i den mappen ska ha script som vi kan arbeta med i vår egna editor (Atom, VSCode etc) lokalt och sedan exekvera scriptet inifrån containern.

#Starta containern med volymen

Vi lägger till egen flagga till vårt run-kommando: -v:

$ docker run -it -v $(pwd)/share:/inside ubuntu:22.04

Flaggan -v talar om att vi vill använda volymer. Det sätts i formatet källa:mål.
$(pwd) returnerar sökvägen till den mappen vi står i. Kolon, :, skiljer vår lokala sökväg mot den vi vill ha inuti containern. I exemplet ger vi mappen namnet inside och den kommer hamna i roten av filsystemet.

När vi kör ovan kommando startar vi containern och kan då använda vår delade mapp:

root@d4712fda9ff3:/# cd inside
root@d4712fda9ff3:/inside#

#Arbeta med filerna

Vi skapar ett script som vi kan jobba med:

root@d4712fda9ff3:/inside# touch script.bash && chmod +x script.bash

Nu kan vi se scriptet om vi öppnar mappen “share” lokalt med din editor. Lägg till lite kod:

#!/usr/bin/env bash

echo "Hello"

Skifta sedan till din container så kan du exekvera scriptet i Linuxmiljön:

root@d4712fda9ff3:/inside# ./script.bash
Hello

En stor fördel är att filerna sparas lokalt och vi använder enbart containern för dess miljö. Perfekt.

#Revision history

  • 2022-05-03: (B, lew) Uppdatering inför ht22.
  • 2019-04-12: (A, lew) Första versionen.

Document source.