Strategie d'Uso
Commit o Dockerfile
Due modi per creare un'immagine Docker:
- creare un Dockerfile e lanciare un docker build
- run di un container, modificarlo, e lanciare il comando
docker commit contenitore immagine
per generare una nuova immagine
Meglio il Dockerfile:
- L'immagine di base può non essere adatta ai nostri scopi e vogliamo successivamente cambiarla
- col commit è praticamente impossibile
- col Dockerfile basta cambiare una linea
- Col commit non si può riprodurre un'immagine
- Il Dockerfile produce documentazione dei passi che sono stati seguiti nella costruzione dell'immagine
- Nel Dockerfile si possono inserire campi LABEL poi visibili col comando docker inspect
- E' possibile copiare il Dockerfile stesso nell'immagine che viene costruita, come ulteriore documentazione portatile
Dockerfiles in Rete
In un mondo realistico moderno:
- il sofware è disponibile in formato Open Source
- per molti applicativi i Dockerfile sono reperibili in rete
- le immagini Docker già pronte possono essere problemi di sicurezza
Esempio: nginx
Troviamo il sito del Dockerfile e scarichiamolo
git clone https://github.com/nginxinc/docker-nginx.git
Andiamo nella directory di contesto generata dal clone:
cd docker-nginx/stable/alpine
Generiamo il progetto:
docker build -t nginx-alpine-src .
Occorrerà molto tempo per la compilazione dei sorgenti, ma non dovrebbero esservi errori.
Miracolo Open Source non Docker.