Strategie d'Uso

Commit o Dockerfile

Due modi per creare un'immagine Docker:

  1. creare un Dockerfile e lanciare un docker build
  2. 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.