‫Quindi cosa facciamo con questo file?
‫Bene, usciamo. Vedremo in questa directory che abbiamo solo questo file.
‫È a malapena un k di dimensioni.
‫Ovviamente non contiene nulla al di fuori del testo, ma sono le istruzioni su come costruire
‫la nostra immagine.
‫Il comando from, quando costruisco questa immagine, estrarrà effettivamente quell'immagine jessie di Debian dall'hub Docker
‫alla mia cache locale. riga ciascuna di quelle stanze all'interno del
‫mio motore di docker e memorizzerà nella cache ciascuno di questi livelli.
‫Quindi eseguirà riga per
‫Digitiamo l'immagine di una finestra mobile e la etichettiamo.
‫Ricorda, questo è il nome che daremo un'immagine.
‫Dato che userò localmente questa immagine, non devo usare il nome dell'account Docker Hub. Posso chiamarlo come
‫voglio.
‫Lo chiamerò custom nginx e inserirò qui un punto, che in pratica dice, costruisci il
‫file docker in questa directory. E vedrai come questo passi attraverso questo,
‫che ogni passo è una linea nel file di dati che sta eseguendo all'interno di questa immagine mentre la sta costruendo.
‫E poi c'è un piccolo hash alla fine che è in realtà l'hash che mantiene nella
‫cache della build in modo che la prossima volta che costruiamo questa cosa, se quella linea non è
‫cambiata nel file docker, non la eseguirà di nuovo.
‫Questo è uno dei pezzi magici del motivo per cui Docker rende la distribuzione e la creazione di software così veloce è
‫in realtà abbastanza intelligente da memorizzare nella cache i passaggi della build.
‫Quindi, molto spesso, dopo aver creato un'immagine per la prima volta, e ci stai davvero cambiando il
‫tuo codice sorgente personalizzato e non necessariamente cambiando l'applicazione in sé, tutto questo
‫materiale di installazione è già successo.
‫Quindi avrai tempi di costruzione molto brevi.
‫Ok, ora abbiamo finito di costruire. Ci è voluto circa un minuto.
‫Ma cosa succede se torno in quel file? Ho intenzione di aggiungere un'altra porta esposta.
‫Ad esempio, ho intenzione di fare 8080.
‫Ora, questo non significa che nginx sia abbastanza intelligente da sapere che sto aprendo questa porta, o che è
‫in qualche modo in grado di comunicare con nginx.
‫Sono solo io che permetto al contenitore di ricevere pacchetti su quella porta.
‫Per sicurezza, facciamo l'immagine di una finestra mobile ls. cima che l'auto lo ha etichettato come ultima, giusto?
‫Vedremo fino
‫in
‫Perché l'abbiamo chiamato solo il nome del repository.
‫In realtà non gli abbiamo dato un nome di tag del colon quando lo abbiamo taggato.
‫Quindi ricostruiamolo.
‫Wow, è stato veloce, giusto?
‫Ci sono voluti solo un paio di secondi. E noterai che su ogni passaggio dirai usando la cache. la cache su 3, utilizzando la
‫cache su 4.
‫A partire dal passaggio 2, dirà utilizzando la cache, utilizzando Il 5 riconosce al punto 5 che quella
‫linea è diversa.
‫Quindi lo esegue effettivamente nel contenitore. E poi, al punto 6, deve ripetere quella linea
‫perché al minuto cambia una linea, ogni riga dopo quella deve essere ora ricostruita.
‫Questo porta al punto sull'ordinazione delle tue linee nel tuo Dockerfile. Perché, se ottieni cose fuori servizio, diciamo che stai costruendo Se copi il codice software che stai creando all'inizio del file, ogni volta
‫ad esempio, se che cambi un file sorgente e lo
‫hai copiato il codice. un sito web. ricostruisci, sarà necessario ricostruire l'intero file Docker.
‫meno e poi le cose che cambiano maggiormente nella parte inferiore del tuo Dockerfile.
‫Quindi è di fondamentale importanza per la tua sanità mentale
‫e il tempo che solitamente tieni le cose in cima al tuo Dockerfile che cambiano
‫