Are Alpine Base Images More Secure?

Video tutorial gratuito di Bret Fisher
Docker Captain, Cloud Native Ambassador, and DevOps Sysadmin
4 corsi
362.247 studenti
Segui il corso completo per saperne di più
Docker Mastery: with Kubernetes +Swarm from a Docker Captain
Build, test, deploy containers with the best mega-course on Docker, Kubernetes, Compose, GitHub Actions CI using DevOps
22:18:32 di video on-demand • Ultimo aggiornamento: Settembre 2025
How to use Docker, Compose and Kubernetes on your machine for better software building and testing.
Learn Docker and Kubernetes official tools from an award-winning Docker Captain!
Learn faster with included live chat group (20,000 members!) and monthly live Q&A.
Gain the skills to build development environments with your code running in containers.
Build Swarm and Kubernetes clusters for server deployments!
Setup GitHub Actions to auto-build your images and scan for security vulnerabilities
Hand's-on with best practices for making Dockerfiles and Compose files like a Pro!
Build and publish your own custom images.
Create your own custom image registry to store your apps and deploy in corporate environments.
Italiano [Auto]
Tutto ok. Quindi qualcosa di cui volevo parlare questa settimana e mi piacerebbe sentire i tuoi pensieri su questo nei commenti, indipendentemente dal fatto che tu lo stia facendo o che tu sia preoccupato per le cose fantastiche che il Dr. capitani di cui stiamo parlando nella nostra chat selezionata un paio di settimane fa penso che potrebbe anche essere stata la settimana scorsa o la settimana prima, ma si trattava più di alcuni articoli che sono usciti e uno in particolare un paio di mesi fa tre o quattro mesi fa intorno alla scansione di sicurezza dei container e ciò che realmente significa sono le immagini che stai facendo all'interno di Docker che sono i mattoni per i tuoi container. Questi sono anche lo spazio di archiviazione per la tua app come dipendenze. Quindi la cosa bella di quell'immagine è che ora diventa davvero un ottimo posto per cercare vulnerabilità note o potenziali difetti di sicurezza nel codice, nelle applicazioni e nella dipendenza. Quindi chiamiamo quel contenitore la scansione o la scansione delle immagini. Esiste un diverso tipo di terminologia nel settore, ma ci sono molti scanner là fuori e ce ne sono più di alcuni. E quelli hanno tutti pro e contro e se lo sei se questo suona familiare. Questo è molto simile alle vecchie guerre antivirus in cui avevamo diversi scanner antivirus che avrebbero raccolto cose diverse. Ma oggigiorno con la scansione dei container quella di cui si parla in genere per prima è l'utilizzo del database aperto di noto. Questa è la parola chiave che vi sono vulnerabilità note nel software open source principalmente software open source ma non è esclusivo dell'open source. Capita solo di essere per lo più open source perché è lì che tendiamo a trovare consentire i difetti perché possiamo vedere la fonte. Quindi finiamo come un'industria che capisce dove i problemi sono più veloci. In modo che roba abbia un database di vulnerabilità conosciute, è sempre aggiornato. E così ci sono scanner là fuori alcuni gratuiti alcuni che non scansioneranno la tua immagine e le sue dipendenze. Quindi non solo la tua app, ma anche qualsiasi app per ottenere dipendenze installate, sai cose come Open SSL o addirittura arricciare se c'è una vulnerabilità in quella e ce l'hai nell'immagine del contenitore. Questi scanner dovrebbero aiutarti a trovare quelle vulnerabilità in modo che tu possa aggiornarle e, si spera, applicare una correzione e sono emerse alcune conversazioni interessanti su un articolo di questo ragazzo Steven ed è stato in giro che questi scanner hanno tutti diversi vantaggi e svantaggi alcuni problemi rilevano altri problemi e forse non hanno tutti la stessa tecnologia. Ma alla fine una delle cose su cui dipendono veramente da Linux è il sistema operativo o in questo caso l'immagine di base come te viene donata a Debian S. O. S. Roba alpina del genere. Queste diverse immagini di base spesso devono tradurre dove si trovano i file sul sistema e a quale programma si riferiscono a quei file, forse come le librerie Open SSL open source per fornire SSL ai tuoi server web. Quindi quei file esisteranno sul sistema operativo da qualche parte in un percorso di file e si riuniranno tutti in un pacchetto e che quei fornitori devono fornire agli scanner essenzialmente una traduzione per capire perché gli scanner trovino dove vivono i pacchetti. OK. Quindi questo è lo sfondo. E si scopre che non tutte le distribuzioni del sistema operativo di Linux forniscono tale funzionalità e non tutte forniscono così come altre. Quindi questo può causare problemi se stai andando alla ricerca di vulnerabilità. In altre parole, l'immagine di base, che si tratti di Ubuntu o S. O. S o Red Hat o alpine che ora conta in termini di essere in grado di scansionare l'intero database di vulnerabilità note non presenti in quell'immagine. Va bene e un punto interessante che penso sia arrivato a questo attraverso questo articolo e tra l'altro lancerò questo articolo nella chat dal vivo. Puoi verificarlo. Un punto interessante che è stato fatto è che proprio ora che è quaggiù in basso parla del problema alpino che penso sia una discussione piuttosto interessante intorno a noi come produttori di container. Forse qualcuno che produce contenitori o almeno è interessato a creare contenitori. E se rendi quelle immagini una delle tue preoccupazioni giuste è la sicurezza e la sicurezza spesso sai che proviamo a sommare tutto sommato in esso è sicuro o è che abbiamo fatto sicurezza e non è proprio una cosa giusta. Noi tutti. Se sei stato lì abbastanza a lungo, sai che la sicurezza è un sacco di cose e non esiste nulla di veramente sicuro. Destra. Forse scherziamo sempre sul fatto che il sistema più sicuro è quello spento. Quindi quando parli del tuo software ci sono molte cose da considerare e Alpine è una distribuzione davvero eccezionale e che fornisce un'immagine di base Alpine Linux e una delle parti migliori è che è molto minimale, molto piccolo arriva intorno a 5 Meg che è pazzo piccolo rispetto a qualcosa di simile a un vantaggio o a S. O. S. Ora puoi confrontarlo nel sistema operativo completo da allora, ma stiamo davvero parlando qui delle immagini stesse, l'immagine del contenitore non è il tuo sistema operativo host. Non voglio parlare del sistema operativo host, voglio davvero solo parlare delle tue immagini di base per i tuoi contenitori perché ciò che vedo nel settore e adoriamo parlarne online è qual è la cosa alla moda e cool che Zeit Geist della nostra comunità ha attirato l'attenzione e penso che negli ultimi due anni Alpino abbia guadagnato popolarità molto a causa del fatto che ha un'immagine così piccola per i contenitori, quindi è una buona cosa. E se sai che l'ho persino fatto, ma se ho cercato su Google conosci l'immagine di base Docker sicura se inizi a guardarti intorno se cerco solo la parola Alpine non viene visualizzata in questa pagina. Quindi è stato un fallimento di Google, ma quello che mi aspetterei di vedere sono le persone che parlano di Alpine perché a molti del settore piace raccomandare Alpine come un modo per ottenere la sicurezza automatica o una migliore sicurezza. E la ragione per cui stiamo discutendo è che è piccola. Quindi, se è più piccolo, ciò significa meno file, meno potenziali vulnerabilità, meno cose da aggiungere a potenziali patch. Destra. E questo è qualcosa che facciamo da decenni nell'era di Windows 2000 del 2008. Ricordo che quando uscì Windows 2008 Microsoft aveva una nuova versione chiamata core che era una versione più piccola di Windows Server. E all'epoca uno dei maggiori argomenti era la migliore sicurezza attraverso meno patch. E quindi se in teoria hai meno software sulla macchina, allora c'è meno di cui preoccuparsi in termini di patch e potenziali vulnerabilità. Quindi è nel nostro caso di Pyne che è uno dei motivi per cui sono più sicuri, ma lo spazio non è sempre il fattore numero uno in realtà come operatore come qualcuno che gestisce server per vivere. Non vedo questo spazio come a buon mercato. Sai 100 meg di questo spazio anche se per me cinque immagini vanno bene, non ho bisogno di risparmiare cinquecento mega di spazio sui miei server. Quello che sai di solito non sto eseguendo il backup di sistemi operativi completi, di solito ti concentri sui backup delle applicazioni la maggior parte delle volte soprattutto ora nel cloud in cui non eseguiamo backup di server basati su immagini se questo è qualcosa che ti è mai capitato. Ai vecchi tempi dove fare backup completi dell'immagine e così molti dei nostri backup erano solo l'intero sistema operativo più e più volte. Beh, non lo facciamo così tanto, penso che al giorno d'oggi sia un'industria specialmente cloud nativa e penso che quando parliamo di immagini e dimensioni non è nemmeno uno dei miei tre principali fattori in termini di immagine e qualità. Quindi, quando guardo un'immagine e potenziali problemi di sicurezza o qualunque sia o semplicemente utilizzo di un'immagine, indipendentemente dal fatto che si tratti di un concerto o 20 mega alla fine della giornata, non sono così preoccupato che devo solo pianificarlo perché alla fine forse è un costo di archiviazione, ma quel costo è una delle cose più economiche nel mio elenco di costi giusto. Gli esseri umani sono la cosa più costosa e quindi altre cose come la potenza di calcolo in termini di rete di memoria CPE, per me sono sempre più costose del disco. Quindi non tendo a raccomandare alle persone di fare Alpine fuori dal cancello. In effetti, se mi hai mai visto parlare della produzione Docker, sai che una delle cose di cui parlo è attenersi a ciò che sai stick con Debian stick con Ubuntu stick con sistema operativo inviato rimanere con quelle immagini se è quello che sei abituato perché Alpine è molto diverso ha un gestore di pacchetti diverso è che i percorsi dei file sono diversi quindi dovrai finire per cambiare molta app solo per usare Alpine e nella maggior parte dei casi ora alcuni casi se stai usando go o forse no J o qualcosa che probabilmente non devi cambiare molto. Ma anche di recente ho visto solo nell'ultimo anno e soprattutto negli ultimi tre mesi ho visto molti altri indicatori per cui forse non dovresti usare Alpine come immagine di base e non si tratta davvero di gettare ombra su Alpino e dicendo che delinea male. Si tratta davvero di fare il lavoro extra per implementare Alpine solo per motivi di maggiore sicurezza e immagini più piccole, quindi potrei non essere il mio argomento, non penso che sia nemmeno necessario e se consideriamo questo nuovo tipo di discussione sul problema alpino in questo articolo del blog è di dire che alpino in questo momento forse non è il posto migliore perché è davvero difficile, se non impossibile, cercare le vulnerabilità di sicurezza nel database CV noto quel database di vulnerabilità comuni che puoi " in realtà non lo fai ancora con Alpine che tu e tu potete farlo con alcuni altri che promuovete cose del genere di Debian Red Hat. Quindi, se sei qualcuno che utilizzerà uno scanner di sicurezza, Alpine è davvero una brutta cosa per te. Un'altra cosa che ho notato di recente è che a volte alpino ha dei problemi subdoli che ti nascondono in parte e in modi che non ti aspetti. Di recente alcuni studenti mi hanno detto che provare a far funzionare Alpine con il nodo Mohn ha riscontrato problemi. E l'ho fatto. Non lo sapevo. Non l'ho provato ma le persone sono tornate da me e mi hanno detto di usare Alpine con il loro no J. S. nodo mio e Nodo meno qualcosa e nessun J S è per l'uso per il monitoraggio dei file per riavviare automaticamente l'app nodo ogni volta che i file cambiano. È davvero buono per lo sviluppo, ma evidentemente hanno avuto problemi con Alpine quando non avrebbero avuto problemi con Ubuntu e Debian e lo sto solo sollevando perché è un fattore importante da considerare quando hai intenzione di implementare una nuova immagine di base. Quindi un sacco di gente viene da me e dice cosa pensi di Alpine se dovessi cambiare tutto in Alpine. Devo prendere tutte le mie immagini che sto costruendo su Debian o immune a o S. O. S o qualcos'altro. E dovrei spostare tutti quelli per andare su Alpine perché sento che è più piccolo e più sicuro e io e la mia risposta onestamente al giorno d'oggi è più complicato di così e probabilmente dovresti prenderlo in considerazione ma forse non ti piace restare con quello che stai bravo e in cosa sai che gli scanner funzionano con gli anni probabilmente puoi usare le immagini predefinite perché tutte le immagini ufficiali che sono predefinite da Docker come ad esempio andiamo a dare un'occhiata al nodo 1. Quindi le immagini non predefinite sono tutte predefinite nell'uso di Debian al di sotto che è leggermente più grande forse 80 Meg più grande rispetto all'immagine alpina ma 80 Meg. Voglio dire, è solo un piccolo fattore che non è per me un grande motivatore a meno che non sia forse su una sorta di te che conosca il dispositivo IO T forse qualcosa del genere. Sai al limite o qualcosa in cui ho una piccola unità flash o qualcosa che potrebbe essere una preoccupazione. Ma se vai a guardare le immagini predefinite se non te ne rendi conto in background, tutte queste immagini predefinite sono a conoscenza se digiti Docker run node o duck o esegui il mio sequel. Tutti eseguiranno Debian di default perché è così che Docker li stava costruendo per iniziare sei anni fa. Ma tutti questi ora hanno opzioni alpine. Quindi potresti forse dire il mio sequel colon Alpine e usare il tag per Alpine e va bene, ma ciò non significa che tu abbia automaticamente un'esperienza migliore tutto il tempo giusto. Non tutti i pacchetti sono disponibili anche nel gestore pacchetti Alpine. In effetti, per uso personale, devo conservare strumenti di sicurezza o utilità diverse, alcune delle quali funzionano in Alpine e altre no. E francamente non voglio andare e capire manualmente come costruirli perché non riescono a costruire e non voglio ancora risolverlo a causa di diverse librerie. Quindi lascio un Debian per la maggior parte dei miei strumenti e ne uso altri tramite Alpine. E alla fine della giornata so che quasi tutto funzionerà su Debian immediatamente perché l'app per ottenere il gestore pacchetti o apt apt gestore pacchetti è un po 'come il re del gestore pacchetti è tutto lì. Se c'è un pacchetto per qualcosa, probabilmente sarà un apt. Destra. Potresti non vedere qualcosa in Yum. Potresti non vederlo nel nostro gestore di pacchetti di Pyne, ma sarà sempre un apt e arriva con Debian e Ubuntu e altre varianti di quelle immagini di base. Quindi, quando stai pensando alle immagini e alla somma di tutto questo quando pensi alle immagini e vuoi costruire le tue immagini di base, la sicurezza è sicuramente un fattore. Ma uno di quelli se sei davvero preoccupato per la sicurezza è che vorrai scansionare le tue immagini. Quindi, se vuoi farlo, quello alpino potrebbe essere uno svantaggio per te. In tal caso, leggi sicuramente questo articolo da quando l'ho vomitato nel testo lì. Un'altra cosa è che il vantaggio dello spazio conta davvero per te. Sai se se stai perdendo un po 'sulla potenziale sicurezza e la dimensione delle tue immagini non importa tanto, specialmente se sei qualcuno che ti ha conosciuto 800 o 900 immagini magnetiche che sono comuni quando hai a che fare con cose come te conosci Java o HP e cose del genere. Quelle sono comunemente immagini molto grandi rispetto a 80 Meg o cinque Meg. Quindi pensa a quella roba un po '. Non cambiare automaticamente tutte le tue cose perché hai sentito che la struttura era più sicura. Ovviamente ci sono molti altri vantaggi in termini di sicurezza per Alpine poiché è piccolo. Ha pochissime vulnerabilità potenziali al suo interno, ma ha delle vulnerabilità proprio non è impermeabile alle vulnerabilità del software, è forse solo meno. Ubuntu e Debian. L'ultima cosa che dirò su questo è se non hai guardato l'altro da immagini come Ubuntu e Debian quelle immagini stanno diventando più piccole nel tempo e ti mostrerò solo per esempio. In realtà è una mia piccola pipì per animali domestici perché le cose vengono estratte da queste immagini e nuove versioni che erano in vecchie immagini e che possono effettivamente causare problemi nel tuo software. Ad esempio pagamento o configurazione IP o forse anche il comando P S. Le cose che erano forse nell'immagine anni fa a cui eri abituato, forse non sono più nelle immagini predefinite delle versioni attuali e questo può essere un po 'un problema se pensavi che sarebbero sempre stati lì. Quindi oggigiorno ho l'abitudine di usare anche un vantaggio per l'immagine fuori dagli schemi, forse sto usando le immagini predefinite che usano un Debian. Passerò anche a fare un'installazione apt per ottenere cose come te conosci il comando PS per la lista dei processi o il ricciolo o qualunque cosa potrei aver bisogno di pagare giusto o qualcosa del genere e questo è solo per assicurarmi che nelle versioni future se prendono mai quelle cose li avrò sempre nella mia immagine perché ho creato un'immagine personalizzata installandoli. Quindi se faccio solo un'immagine Docker L S qui non ho una macchina ripulita, quindi no. In realtà ne ho solo un paio qui, quindi se faccio un pull di immagini Docker facciamo solo Ubuntu e poi facciamo il debutto e poi facciamo Alpine perché questi numeri cambiano continuamente. In realtà non sono sicuro di quali siano i numeri più frequenti quali siano lo stato attuale, quindi facciamo di nuovo l'immagine Docker di nuovo e. Proprio così Alpine arriva a cinque e mezzo meg piuttosto folle a destra. Se riesci a capire tutto il motivo per cui in realtà è piuttosto interessante il modo in cui costruiscono binari statici e binari roba collegati in modo che non siano molto piccoli. Se guardi a Ubuntu un vantaggio di tre anni fa era probabilmente centoventi Meg. Almeno centotrenta Meg. E ora è fino a ottantasette e la versione corrente di Debian è 1 a 1. Il che è strano perché normalmente penseresti che un vantaggio sia normalmente più grande di Debian e non sono sicuro che questo cambierà nella prossima versione di Debian. C'è qualcuno nella chat probabilmente conosce questa risposta più velocemente di me, ma penso che ci potrebbe essere la versione C sperimentale, forse è troppo sperimentale. Immaginerò che è più piccolo e ricorderò mentre lo stiamo facendo che se stai pensando anche al tuo potrei avere 100 cento container in esecuzione. Ricorda che supponendo che tutti stiano usando lo stesso livello base, quel livello sta occupando una sola volta su quello sul sistema di offerta. Finché mantieni la tua immagine pulita potandole automaticamente finché fai cose come assicurarti che la maggior parte delle tue app in esecuzione siano all'interno di una o due versioni delle immagini di base in modo che tu non sia tu non hai tutte le versioni sul server, quindi non occuperai molto spazio con queste cose giuste. Bene, diamo un'occhiata a sperimentale. In realtà è più grande. È un peccato. Mi sembra di ricordare a un certo punto dell'anno scorso di aver letto di un vantaggio e di Debian che si trasferisce in qualcosa e hanno il loro slim slim, c'è qualcosa di un po 'diverso. Tiene sicuramente molto di più, ma potresti chiederti come queste cose si stanno riducendo. Non è perché li stanno comprimendo o comprimendo più, è che stanno semplicemente estraendo strumenti che non sono essenziali o tirando fuori librerie che non sono più necessarie per quegli strumenti di base. Ed è per questo che cose come P. S. e il pagamento e il kernel e altre utilità stanno scomparendo da queste immagini. Quindi diffidare di tutto bene. Quindi penso che sia un'ottima discussione e non vedo l'ora di sentire i tuoi commenti e leggere i tuoi commenti su questo in questo. In realtà sto pianificando aggiornamenti di un paio dei miei corsi per parlarne e fornire un po 'più di informazioni su Alpine e perché e quando potresti voler sceglierlo su una versione diversa di un'immagine di base perché è una buona discussione e ovviamente c'è molto da parlare su molte ragioni diverse per scegliere un'immagine di base piuttosto che un'altra.