GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come gestire i container Docker? Migliori pratiche

Docker ha rivoluzionato lo sviluppo del software con l'uso di container ed è oggi la piattaforma container leader.

I container rimuovono molti processi noiosi dallo sviluppo del software. Massimizza il potenziale di Docker implementando le best practice per migliorare sicurezza, velocità ed efficienza.

In questo tutorial, discutiamo delle best practice per la gestione dei container Docker.

Che cos'è Docker?

Docker è un'utilità open source che elimina le attività ripetitive nello sviluppo del software.

Consente a uno sviluppatore di creare un contenitore, un ambiente controllato per eseguire un processo.

Il contenitore utilizza un'immagine, una replica di un ambiente operativo specifico. Sebbene sembri una virtualizzazione del server, i container Docker sono ottimizzati per eseguire un comando con risorse minime caricando solo le librerie e le dipendenze necessarie.

Best practice per la gestione dei container Docker

Gestire l'efficienza dei container Docker con una pianificazione adeguata

Durante la mappatura del processo software, è meglio pianificare il sistema di container per assicurarti di svolgere le attività con la minor quantità di lavoro e risorse.

Prima di creare ed eseguire questi ambienti virtuali, considera come mappare ogni processo a un container e come interagiscono questi container.

Inoltre, dovresti esaminare se i contenitori sono lo strumento migliore per te. Sebbene Docker offra molti vantaggi, alcune applicazioni funzionano meglio sulle macchine virtuali.

Dai un'occhiata alla differenza tra container e VM e decidi quale si adatta meglio alle tue esigenze.

Sfrutta la velocità dei container

A differenza di una macchina virtuale, un container non necessita di una vasta libreria di risorse per essere eseguito. Un container può essere caricato, eseguito e scaricato dalla memoria in una frazione di secondo.

Per ottenere i migliori risultati in termini di prestazioni, desideri mantenere piccole le immagini Docker e il tuo Docker si costruisce velocemente. Esistono molti modi per ridurre le dimensioni dell'immagine, ad esempio decidere su una base di immagini più piccola, utilizzare build multifase ed evitare livelli non necessari.

Allo stesso modo, la memorizzazione nella cache locale dei livelli Docker esistenti ti consente di ricostruire le immagini più rapidamente, sfruttando in definitiva la velocità dei tuoi contenitori.

Esegui un singolo processo in ogni container

Non c'è limite al numero di contenitori che puoi avviare ed eliminare. Ognuno può eseguire diversi processi nel proprio ambiente.

Tieni presente che più operazioni esegue un container, più lento diventa. Ciò è particolarmente vero se si limita l'utilizzo della CPU e della memoria di un container. Il numero di risorse necessarie per caricare ha un forte impatto sulle prestazioni. Può essere facile sovraccaricare la memoria eseguendo più attività contemporaneamente. L'utilizzo di un processo per container aiuta a limitare le risorse condivise e a ridurre l'ingombro complessivo del container.

Dedicare un singolo processo a ciascun container aiuta a mantenere un ambiente operativo pulito e snello.

Utilizza i servizi SWARM

Se gestisci più contenitori su più computer host, prendi in considerazione l'utilizzo dei servizi Docker Swarm, uno strumento di orchestrazione dei contenitori. Docker Swarm automatizza molte attività di pianificazione e gestione delle risorse e aiuta a scalare rapidamente se la rapida crescita è un problema.

Un'alternativa popolare a Swarm è Kubernetes, una piattaforma alternativa per automatizzare la distribuzione delle applicazioni. La scelta tra Docker Swarm e Kubernetes dipende principalmente dalle esigenze della tua organizzazione.

Evita di utilizzare i contenitori per l'archiviazione dei dati

L'archiviazione dei dati aumenta l'input/output (lettura/scrittura del disco) di un contenitore.

Uno strumento migliore per l'archiviazione dei dati è un repository software condiviso.

L'accesso al repository remoto è concesso ai container su richiesta, riducendo così le dimensioni del container. Aiuta anche a prevenire il caricamento e l'archiviazione di dati ridondanti in contenitori diversi. Infine, può prevenire colli di bottiglia poiché più processi accedono allo storage.

Trova e mantieni un'immagine Docker che funzioni

Un'immagine contiene tutte le configurazioni, le dipendenze e il codice necessari per un'attività.

Può essere difficile creare un'immagine per l'intero ciclo di vita dell'applicazione. Tuttavia, una volta creata un'immagine, evita di modificarla. Potrebbe essere allettante aggiornare un'immagine Docker mentre le dipendenze vengono aggiornate. Ma la modifica di un'immagine a metà ciclo può creare scompiglio nel processo di sviluppo. Ciò è particolarmente vero se diversi team utilizzano immagini con dipendenze incompatibili.

L'utilizzo di una singola immagine dall'inizio alla fine semplifica la risoluzione dei problemi.

Tutti i team lavoreranno con lo stesso ambiente di base, dedicando meno tempo a riunire diverse sezioni di codice. Inoltre, un singolo aggiornamento può essere completato e testato su più contenitori. Riduce il lavoro duplicato dei singoli aggiornamenti e correzioni del codice. Aiuta inoltre i team di controllo qualità a trovare e risolvere i problemi più rapidamente.

Rete nei container

Ai contenitori in Docker vengono assegnati indirizzi IP per comunicare tra loro. Questo può creare problemi in un ambiente di rete.

In passato, il ––LINK comando è stato utilizzato per gestire l'indirizzamento e le comunicazioni. Questa funzionalità è considerata legacy ed è stata sostituita con il collegamento in rete.

La rete bridge definita dall'utente tra i container consente l'accesso a tutte le porte all'interno della rete bridge. Blocca anche tutte le porte verso il mondo esterno. Questo crea un ambiente sicuro per i container. Il traffico interno scorre ininterrotto ed è protetto da influenze esterne.

Per ulteriori informazioni sui bridge definiti dall'utente (e altre tecnologie), consulta la documentazione Docker.

Best practice per la sicurezza Docker

Il team Docker ha adattato molti moderni protocolli di sicurezza Internet. Gli sviluppatori di rete originali non hanno integrato la sicurezza nei protocolli di rete.

La sicurezza del retrofit è sempre difficile e costosa. Una pratica molto migliore è implementare la sicurezza durante lo sviluppo.

Di seguito sono riportate alcune opzioni da considerare per la gestione della sicurezza dei container Docker .

1. Evita di eseguire container con privilegi di root

La maggior parte degli amministratori Linux ha familiarità con i rischi legati alla concessione di privilegi di root completi agli utenti. Avvertenze simili si applicano ai contenitori. Una pratica migliore consiste nel creare contenitori con solo i privilegi di cui hanno bisogno.

Usa il –u tag per specificare un utente (anziché un amministratore).

2. Credenziali sicure

Conserva le credenziali in un luogo diverso da quello in cui le utilizzi. Inoltre, le variabili ambientali sono un modo migliore per gestire l'accesso all'interno di un container.

Includere le credenziali nello stesso contenitore è come conservare una password su una nota adesiva. Nel peggiore dei casi, una violazione in un container può diffondersi rapidamente in un'intera applicazione.

3. Usa –PRIVILEGED Tagga con parsimonia

Per impostazione predefinita, i container vengono eseguiti in una modalità senza privilegi più sicura.

I container non potranno accedere ad altri dispositivi. Se è necessario l'accesso ad altri dispositivi, utilizzare il –privileged tag per concedere l'accesso caso per caso.

4. Utilizza applicazioni di sicurezza di terze parti

È sempre una buona idea avere un secondo paio di occhi per rivedere la tua configurazione di sicurezza. Gli strumenti di terze parti sfruttano l'abilità degli specialisti della sicurezza per analizzare il tuo software. Possono anche aiutarti a scansionare il tuo codice alla ricerca di vulnerabilità note. Inoltre, spesso includono un'interfaccia intuitiva per la gestione della sicurezza dei container.

5. Prendi in considerazione il passaggio ai registri software privati

Docker Hub gestisce un registro gratuito di immagini software, che può essere molto utile per sviluppatori alle prime armi o piccoli team di sviluppo che lavorano su progetti complessi.

Tuttavia, la sicurezza può essere un problema quando si utilizzano questi registri. Vale la pena valutare i costi e i vantaggi dell'hosting dei registri software. Se desideri un modo pratico per distribuire le risorse e condividere le immagini Docker tra i container, potresti voler configurare un registro Docker privato.


No
Docker
  1. Come creare, elencare ed eliminare contenitori Docker su Linux

  2. Monitoraggio dei container Docker:vantaggi, best practice e strumenti indispensabili

  3. Come elencare i contenitori Docker

  4. Come eseguire il backup e il ripristino dei container Docker

  5. Come mettere in pausa e riprendere i contenitori Docker

Come eseguire i contenitori Docker

Come rimuovere i contenitori Docker

Come fermare i container Docker

Come rinominare o rinominare i contenitori Docker

Come gestire i container Docker

Come elencare/avviare/arrestare/eliminare i contenitori docker