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
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