GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Dimensione immagine Docker:come mantenerla piccola?

Introduzione

Le immagini Docker sono componenti essenziali utilizzati per la creazione di contenitori Docker. Sebbene strettamente correlati, esistono grandi differenze tra le immagini Docker e i contenitori.

Un'immagine Docker è la base di un contenitore. Queste immagini vengono create scrivendo Dockerfiles, elenchi di istruzioni eseguite automaticamente per creare un'immagine Docker specifica.

Quando crei un'immagine Docker, assicurati di mantenerla leggera. Evitare immagini di grandi dimensioni velocizza la creazione e la distribuzione di container. Pertanto, è fondamentale ridurre al minimo le dimensioni dell'immagine.

Continua a leggere per scoprire come mantenere piccole le immagini Docker.

Usa una base di immagini più piccola (alpina)

Per creare un'immagine Docker, è necessaria una base su cui installare e aggiungere componenti, se necessario. Puoi scaricare un'immagine padre esistente e usarla come base della tua immagine o crearne una da zero.

Si installa una variante di un sistema operativo come base di un'immagine. La base del sistema operativo può influire drasticamente sulle dimensioni dell'immagine Docker finale, motivo per cui la scelta di quella giusta gioca un ruolo significativo.

Linux ha creato un'utile alternativa leggera e con un ambiente POSIX minimo:Alpine. Questa base di immagini di distribuzione Linux è di soli 5 MB, costruita attorno a musl libc e BusyBox.

Rispetto ad altre immagini del sistema operativo, Alpine ha dimensioni molto più ridotte. L'immagine del sistema operativo più scaricata, Ubuntu, è di 188 MB, mentre Alpine è di soli 5 MB.

Usa un file .dockerignore

L'esclusione di alcuni file che non sono necessari per la tua immagine può aiutarti a ridurre le dimensioni dell'immagine. È qui che il .dockerignore arriva il file.

Quando crei un'immagine, scrivi un Dockerfile con le specifiche di come dovrebbe apparire quell'immagine.

Quando si delinea il contesto di compilazione, è importante includere anche un file .dockerignore e archiviarlo nella stessa cartella del Dockerfile.

Questa funzione Docker viene avviata con docker run . Il sistema controlla se esiste un tale file e applica le sue eccezioni e ignora le regole. In questo modo, rimuovi qualsiasi contenuto irrilevante dal contesto creato.

Utilizza la funzione Build multifase in Docker

Docker ha introdotto la funzione multistadio nella sua versione 17.05. Consente agli utenti di dividere il Dockerfile in più fasi.

Ogni fase inizia con un FROM istruzione. L'artefatto richiesto passa alla fase successiva, lasciando dietro di sé contenuti di cui non avrai bisogno nell'artefatto finale dell'immagine.

Poiché il processo trasferisce solo i componenti necessari dell'artefatto, non è necessario ripulire manualmente dopo ogni istruzione.

Con la funzione multistadio, eviti di aggiungere livelli non necessari, che hanno un impatto considerevole sulle dimensioni complessive dell'immagine.

Evita di aggiungere livelli non necessari per ridurre le dimensioni dell'immagine Docker

Un'immagine Docker occupa più spazio con ogni livello che aggiungi. Pertanto, più livelli hai, più spazio richiede l'immagine.

Ogni RUN l'istruzione in un Dockerfile aggiunge un nuovo livello all'immagine. Ecco perché dovresti provare a manipolare i file all'interno di un singolo RUN comando. Inoltre, combina diversi comandi in un'unica istruzione usando il && opzione.

Ad esempio, puoi aggiornare il repository e installare più pacchetti in un unico RUN istruzione. Per ottenere una linea chiara e completa, utilizza la barra rovesciata (\ ) per digitare il comando su più righe.

Oltre ad aggiornare e installare i pacchetti, dovresti anche ripulire la cache di apt con && rm -rf /var/lib/apt/lists/* per risparmiare spazio in più.

RUN apt-get update && apt-get install -y\
         [package-one] \
         [package-two] 
   && rm -rf /var/lib/apt/lists/*

Attenzione agli aggiornamenti, ai pacchetti e alle dipendenze non necessari

Un altro modo per risparmiare spazio e mantenere piccola l'immagine Docker è assicurarsi di eseguire l'ultima versione della piattaforma su cui stai costruendo.

Avendo la versione più recente, eviti aggiornamenti estesi che scaricano innumerevoli pacchetti rpm e occupano molto spazio.

L'installazione di un pacchetto spesso include anche il download delle dipendenze su cui si basa il software. Tuttavia, a volte il download memorizzerà anche pacchetti che non sono richiesti, ma piuttosto consigliati.

Tali pacchetti indesiderati possono sommarsi e consumare molto spazio su disco. Per scaricare solo le dipendenze principali, aggiungi il --no-install-recommends opzione al comando di installazione.

Ad esempio:

RUN apt-get install --no-install-recommends [package-one]

Suggerimento bonus:memorizzazione nella cache

Sebbene questo suggerimento non influisca sulle dimensioni complessive dell'immagine Docker, aiuta con build Docker più veloci.

Docker velocizza la creazione di immagini memorizzando localmente nella cache i livelli esistenti di un Dockerfile e utilizzandolo per ricostruire le immagini più velocemente.

Ad esempio, immagina di avere un semplice Dockerfile composto da tre livelli. Dopo aver creato un'immagine da quel file, il sistema memorizza automaticamente nella cache questi tre livelli. La prossima volta che crei l'immagine, viene caricata dalla cache locale.

Se decidi di modificare l'immagine e cambiare uno dei livelli, la cache non verrà utilizzata per nulla dopo il livello modificato.

Si consiglia di ordinare le istruzioni in modo da migliorare l'efficienza e utilizzare la funzione di memorizzazione nella cache. Inserisci le istruzioni che potrebbero cambiare il più in basso possibile nel Dockerfile.


Ubuntu
  1. Come installare Docker su Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  2. Come spostare le immagini Docker tra host

  3. Come ridurre le dimensioni dell'immagine Docker:6 metodi di ottimizzazione

  4. Come condividere le immagini Docker con altri

  5. Come creare un'immagine personalizzata da un contenitore Docker

Docker:come usarlo in modo pratico - Parte 3

Come installare Docker su Ubuntu 20.04, 18.04, 21.04

Come installare AlmaLinux 8 Image in Docker Container

Come creare un'immagine Docker da un contenitore in esecuzione

Come ridurre le dimensioni dell'immagine Docker nei contenitori Docker

Come creare un'immagine Docker personalizzata con Dockerfile