Due docker container condividono una dir segue alla serie di articoli e sperimentazioni che puoi eseguire con docker ed i container.
In questo articolo riprendiamo parte delle informazioni che già conosci per approfondire un test in cui due container di tipo http condivideranno la medesima cartella host.
Ti consiglio, se già non lo hai fatto, di leggere i precedenti articoli sui docker container:
ti aiuteranno a comprendere meglio l’esperimento descritto in questo articolo.
Due docker container condividono una dir: prerequisiti
Il primo passo da eseguire affinché due container possano condividere la stessa dir sull’host è modificare il selinux dell’host:
usando il comando
setenforce 0
ottieni che il valore è passato da enforcing a permissive:
Tale modifica ti consente di evitare che il selinux impedisca l’accesso contemporaneo alla directori host da parte dei due container.
Avvia i container docker
Proseguendo con il progetto due docker container condividono una dir è il momento di avviare i due container:
Nota che per entrambi devi usare l’opzione “-v” seguita dal path dell’host in cui si trova le directory da condividere, con il consueto comando:
controlla che siano stati correttamente avviati i due container:
A questo punto non resta che eseguire il primo test, verificare che ciascun container risponda sulla porta http impostata:
- myhttpd1 sulla porta 8888
- myhttpd2 sulla porta 8889
puoi eseguire il test direttamente dal tuo browser digitando nell’Url:
http://[ ip dell'host ]:8888
e vedrai una schermata simile alla seguente:
apri quindi anche una seconda TAB del browser e collegati all’Url:
http://[ ip dell'host ]:8889
ti comparirà la medesima pagina servita dal secondo container:
E’ la prova che entrambi i container accedono al medesimo repository esterno.
Modifica dei file nella share condivisa
La seconda parte del test due docker container condividono una dir prevede la modifica e verifica della pagina index presente nella directory condivisa.
Inizia modificando la pagina index.html, spostati nella dir condivisa sulll’host:
visualizza il file index.html:
esegui il comando:
vi index.html
ed edita il file come preferisci, io ho aggiunto la parola two nella frase: “Your last two Docker installations”
dopo aver salvato e verificato che il file contenga le modifiche eseguite puoi andare sul browser ed eseguire il refresh di entrambe le tab.
Sulla prima ( porta 8888 ) vedrai:
e sulla seconda tab ( porta 8889 ), invece, vedrai:
cosa ti saresti aspettato ?
I due docker container condividono una dir quindi anche i medesimi file contenuti all’interno; se modifichi un file vedrai la modifica su entrambi.