Mappaggio a host

Persistere i Dati

Quando un container è rimosso i suoi dati sono persi

Soluzione: mappare una directory dello host ad una directory del container, con l’opzione di lancio:

-v dir_host:dir_container

Mappaggio detto Host Mapping

  • Si può usare l’opzione più volte, per più directories
  • Si può effettuare solo al lancio del container

Host Mapping

Dati Persistenti

Download di un web server:

docker pull nginx

Creare una directory web1 con il file index.html:

mkdir -p ~/docker/web1; cd ~/docker/web1; pwd

Editare il file index.utml:

<html><body>
<h1>FUNZIONA</h1>
</body></html>```

Lanciare un container che mappa la directory:

docker run -d -v ~/docker/web1:/usr/share/nginx/html nginx

Deve essere un percorso assoluto sullo host. Sul container può essere relativo alla dir di default

Verificare l'indirizzo IP del container:

docker inspect ID | grep IPAddress

Provare il collegamento via browser all’indirizzo IP

Condivisione di file

Si può condividere un singolo file:

cd
touch  ~/docker/example.txt

Il file deve esistere prima di condividerlo al container o docker pensa che sia una directory e la crea

Da host:

cd
docker run --rm -ti --name sharing -v $PWD/docker/example.txt:/tmp/example ubuntu:14.04 bash

E nel contenitore:

echo "hello" > /tmp/example
exit

Ritornati sullo host:

cat ~/docker/example.txt

Note

I permessi di default del container sono di root

  • Se una directory viene creata sullo host ha i permessi di root
  • Altrimenti crearla manualmente prima del mappaggio
  • Sempre attenzione ai permessi dei dati mappati