Come archiviare immagini e contenitori Docker su un'unità esterna

0
103

Docker archivia le immagini scaricate, i contenitori in esecuzione e i dati sui volumi persistenti in un'unica directory radice condivisa sull'unità di sistema. È possibile personalizzare la configurazione per utilizzare un'unità esterna, una condivisione di rete o un secondo disco interno se è necessario aggiungere spazio di archiviazione all'installazione.

Preparazione

La parte principale di questa guida si applica a Docker Engine per Linux e Docker Desktop su Windows e Mac. Dovrai trovare il tuo file Docker daemon.json su tutte e tre le piattaforme. Questo sarà in una delle seguenti posizioni:

  • /etc/docker/daemon.json su Linux.
  • %programdata%dockerconfigdaemon.json su Windows.
  • ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json su Mac.
  • < /ul>

    Docker consiglia agli utenti Windows e Mac di aggiornare il file di configurazione tramite l'interfaccia utente, invece di applicare manualmente le modifiche in un editor di testo. Puoi accedere alla schermata delle impostazioni andando su Preferenze > Motore Docker > Modifica il file nell'interfaccia di Docker Desktop.

    Modifica della directory dei dati

    La posizione della directory dei dati di Docker è controllata dall'impostazione della radice dei dati nel file di configurazione. Le vecchie versioni Docker rilasciate prima del 17.06 utilizzavano invece il grafico. Puoi controllare la versione che hai eseguendo il comando docker version.

    $ docker version … Server: Docker Engine – Community Engine: Version: 20.10.17

    Trova o aggiungi la chiave pertinente all'interno del file di configurazione. Imposta il percorso della directory desiderato come valore. Ecco un esempio Linux che archivia i dati Docker su un'unità esterna montata nel filesystem:

    { "data-root": "/mnt/docker-data" }

    È necessario riavviare il demone Docker dopo aver apportato la modifica:

    $ sudo service docker restart

    Docker Desktop può essere riavviato su Windows e Mac chiudendolo e quindi avviando una nuova istanza.

    Dovresti copiare il contenuto della directory dei dati corrente nel nuovo percorso se desideri conservare il contenuto esistente. In caso contrario, inizierai con una lavagna pulita, incapace di accedere a contenitori e immagini creati in precedenza.

    $ sudo rsync -aSv /var/lib/docker//mnt/docker-data

    Modifica della directory dei dati senza un riavvio

    È possibile spostare la directory dei dati senza riavviare il demone creando un collegamento simbolico da /var/lib/docker alla nuova posizione. Questo potrebbe essere utile se stai esaurendo lo spazio su un host in cui un riavvio non programmato del servizio Docker non è un'opzione praticabile.

    Copia i dati Docker esistenti nella nuova directory:

    p> $ sudo rsync -aSv /var/lib/docker//mnt/docker-data

    Quindi crea un collegamento simbolico che risolva /var/lib/docker nella posizione di destinazione:

    $ sudo ln -s/mnt/docker-data//var/lib/docker

    Non utilizzare questa tecnica per carichi di lavoro che modificano rapidamente i dati del filesystem. Esiste il rischio che si verifichino incoerenze se i dati vengono scritti nel tempo che intercorre tra la copia della directory esistente e la creazione del collegamento simbolico.

    Cosa cambia effettivamente?

    La modifica della directory principale di Docker influisce su tutti i diversi tipi di dati archiviati dal demone. Ciò include le immagini, i contenitori, i plug-in installati, la configurazione di Swarm e i volumi, nonché la cache di build Docker.

    La modifica del percorso scriverà tutti questi dati nella nuova posizione. Non puoi spostare selettivamente tipi specifici per separare i punti di montaggio. Ciò significa che è importante selezionare una posizione di archiviazione che offra buone prestazioni complessive. L'utilizzo di un'unità esterna lenta potrebbe danneggiare la reattività delle operazioni dell'interfaccia a riga di comando della finestra mobile, anche se si adatta a determinati tipi di dati come l'archiviazione di immagini a lungo termine.

    In assenza del supporto del percorso dati per tipo, l'eliminazione delle risorse inutilizzate può essere un modo migliore per gestire i requisiti di archiviazione di Docker. Invece di allocare più spazio su Docker, ripulisci le risorse ridondanti e invia le immagini inutilizzate a un registro centrale separato. Questo può liberare molto spazio sul tuo host.

    Uso una tantum di una directory di dati diversa

    < p>Puoi avviare manualmente Docker Engine con una directory di dati specifica passando il flag –data-root all'avvio del demone. Può essere utilizzato per passare da una directory di dati all'altra o eseguire un'istanza pulita senza i tuoi dati esistenti.

    $ sudo /usr/bin/dockerd –data-root /mnt/docker-data

    Il flag sovrascriverà il percorso della directory specificato dal file daemon.json. La directory configurata rimarrà intatta in modo da poter tornare a quell'istanza in futuro.

    Riepilogo

    Docker archivia tutti i suoi dati, comprese le immagini compilate ed estratte, i contenitori creati e i volumi all'interno di un unico albero di directory. La radice è solitamente /var/lib/docker ma puoi personalizzarla aggiungendo un'impostazione al tuo file di configurazione o fornendo il flag –data-root quando avvii il demone.

    Cambiare la directory dei dati significa i tuoi dati esistenti non verranno visualizzati in Docker a meno che non li copi nel nuovo percorso. Puoi utilizzare questa funzione per mantenere diversi repository di archiviazione Docker indipendenti, ad esempio uno per i progetti personali e un altro per il lavoro. Tuttavia, dovrai riavviare il demone prima di cambiare contesto, poiché solo un'istanza può essere eseguita contemporaneamente.

    LEGGI SUCCESSIVO

    • › Asus’ Il nuovo PC desktop ha porte per USB Type-C e… PS/2?
    • › Il nuovo campanello Nest cablato ha più funzioni in un pacchetto più piccolo
    • › Quali Chromebook supportano Steam?
    • › L'app Google Home ha un nuovo look e un'automazione più potente
    • › Non riesci a trovare un Raspberry Pi? Acquista invece un NUC usato
    • › Il nuovo router mesh di Google dispone di Wi-Fi 6E e supporto per la materia