Qualche consiglio su come risparmiare spazio?

Gestiamo un sito Discourse self-hosted su DigitalOcean e abbiamo un disco da 25 GB. Ho appena provato ad aggiornare la nostra immagine Discourse e ho ricevuto il messaggio “è necessario più spazio per continuare”. Dopo aver pulito l’immagine e i container Docker, ci mancano ancora 0,4 GB.

Qualche consiglio su come risparmiare spazio? Sia per poter aggiornare ora, sia per risparmiare spazio in futuro. So che dovremo ridimensionare presto, ma sarebbe utile riuscire a superare almeno un altro aggiornamento dell’immagine Discourse.

4 Mi Piace

Memorizzi i backup localmente?
Se sì, forse eliminare un paio di vecchi potrebbe aiutare. 0,4 GB (cioè 400 MB) dovrebbero essere gestibili.

Potresti anche provare a liberare un po’ di spazio sul sistema host.

1 Mi Piace

prova a riavviare il tuo server, quindi riprova se sei sicuro che ci sia spazio sufficiente.

Utilizziamo la funzionalità di backup di DigitalOcean. Non ho visto un’opzione per eliminare manualmente uno dei nostri backup.

Come posso procedere? Sono una persona che non ha esperienza di programmazione ma sono in grado di capire cosa fare e perché lo sto facendo dopo aver ricevuto alcune indicazioni.

Ho provato a riavviare e non è cambiato nulla.

Dopo aver eseguito sudo du -h --max-depth 1, questi sono i miei risultati:

Prova a eliminare gli oggetti Docker inutilizzati

1 Mi Piace

A questo punto mi risparmierei problemi e farei il lavoro di ridimensionamento ora.

3 Mi Piace

Ho eliminato tutto tranne i volumi inutilizzati perché docker volume ls mostrava che ne avevamo solo uno.

Hai provato?

./launcher cleanup

1 Mi Piace

Sì!

Ho scavato un po’ di più nelle nostre immagini Docker con docker images -a e vedo questo.

Cosa sta succedendo con <none>?

1 Mi Piace

Alcune ricerche mi hanno portato a questo commento molto interessante.

rofranoJohn Rofrano

Nov '17

È importante capire perché hai immagini intermedie senza tag che appaiono come <none> <none> per evitarle, poiché, come hai visto, non puoi rimuoverle se sono in uso.

Il motivo per cui si verificano le immagini senza tag è che hai creato un’immagine, poi hai modificato il Dockerfile e hai ricreato quell’immagine, riutilizzando alcuni dei layer della build precedente. Ora hai un’immagine senza tag che non può essere eliminata perché alcuni dei suoi layer sono utilizzati da una nuova versione di quell’immagine.

La soluzione è:

  • Eliminare la nuova versione dell’immagine
  • Eliminare l’immagine senza tag e
  • Ricreare la nuova versione dell’immagine in modo che possieda tutti i layer.

Ti rimarrà una singola immagine con tag che contiene tutti i layer delle precedenti immagini senza tag e la nuova immagine.

~jr

Non mi aspettavo di trovare 2,64 GB in un’immagine docker , quindi ora sto cercando di capire cosa sta succedendo lì. Se non ho bisogno di questa immagine, allora siamo sicuramente lontani dal dover ridimensionare.

Hai eseguito

./launcher cleanup

Ma ti consiglio di ridimensionare. Sono sorpreso che tu sia durato così a lungo con 25 GB.

Inoltre, hai controllato in shared/backups/default

Non mi fiderei assolutamente dei backup di DigitalOcean come mezzo per eseguire il backup del tuo forum.

2 Mi Piace

Quanto tempo? Non vedo alcun accenno a ciò - so che sto eseguendo felicemente un forum su 20G e un altro su 25G.

In shared potresti avere molti dati di backup (forse in shared/standalone/backups/default). Potresti anche avere vecchie copie del database o vecchi file di log. Ti consiglio di eseguire
du -kx / | sort -n | tail -49
o simile.

È giusto notare che puoi risparmiare tempo, a scapito di denaro, passando a un’istanza più grande. Oppure puoi fare il compromesso opposto.

Questo mi preoccupa un po’. DO potrebbe aiutarti con i backup dell’intero sistema, ma se fossi io, sarei più felice di sapere come eseguire i backup di Discourse e come ottenere una copia locale sicura. E come potare i backup. (Se per qualche sfortuna DO cancellasse la tua istanza e il tuo account, vorresti che i tuoi dati sopravvivessero a questo.)

:woman_facepalming:t3: Usiamo anche la funzionalità di backup di Discourse e mi sono reso conto che non avevamo cancellato i vecchi backup .

Bene, ho eliminato tutti i backup tranne l’ultimo utilizzando l’interfaccia di Discourse e ho anche scaricato il backup più recente sul mio disco locale. Questo mi porta a meno di 100 MB di spazio libero.

Ecco cosa ottengo quando eseguo quel comando in var/discourse

656876  /var/lib/docker/overlay2/81fd81f27d0d8fe795f510fe8d70c4ecad96405b0e1dbb57f0440fe9c398a30d/diff/var/www/discourse/vendor
819624  /var/log/journal/e734ad1931dbee4740881cc15c9e7a9a
826292  /var/discourse/shared/standalone
826296  /var/discourse/shared
831476  /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff/home/discourse/.cache/yarn/v6
831484  /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff/home/discourse/.cache/yarn
831492  /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff/home/discourse/.cache
832188  /var/discourse
845992  /lib/modules
850136  /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff/home/discourse
850144  /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff/home
898764  /var/lib/docker/overlay2/58e9df9d9e2e10efb3dcf68771edd172664f8d91e3aa2e0b280fd4549bfd2a91/diff/usr/lib
966656  /var/lib/docker/overlay2/21f4d6109bd809c584ae84f9f7c50286c6126176f86a2ef61c4c24ce1e633765/diff/var/www/discourse
966660  /var/lib/docker/overlay2/21f4d6109bd809c584ae84f9f7c50286c6126176f86a2ef61c4c24ce1e633765/diff/var/www
966664  /var/lib/docker/overlay2/21f4d6109bd809c584ae84f9f7c50286c6126176f86a2ef61c4c24ce1e633765/diff/var
991800  /var/lib/docker/overlay2/21f4d6109bd809c584ae84f9f7c50286c6126176f86a2ef61c4c24ce1e633765/diff
991816  /var/lib/docker/overlay2/21f4d6109bd809c584ae84f9f7c50286c6126176f86a2ef61c4c24ce1e633765
994980  /var/lib/docker/overlay2/2749f8a24b3e28af399b256ecab7f2db0cb146939a0ef56e83858a0e696c3df6/diff/usr/lib
1089092 /var/lib/docker/overlay2/9817d45d2728572ad6dc4d62df5944dfad69c35b76753ceb260e0130863ece49/diff/var/www/discourse
1089096 /var/lib/docker/overlay2/9817d45d2728572ad6dc4d62df5944dfad69c35b76753ceb260e0130863ece49/diff/var/www
1130168 /var/lib/docker/overlay2/9817d45d2728572ad6dc4d62df5944dfad69c35b76753ceb260e0130863ece49/diff/var
1177644 /var/lib/docker/overlay2/9817d45d2728572ad6dc4d62df5944dfad69c35b76753ceb260e0130863ece49/diff
1177660 /var/lib/docker/overlay2/9817d45d2728572ad6dc4d62df5944dfad69c35b76753ceb260e0130863ece49
1224436 /var/lib/docker/overlay2/81fd81f27d0d8fe795f510fe8d70c4ecad96405b0e1dbb57f0440fe9c398a30d/diff/var/www/discourse
1224440 /var/lib/docker/overlay2/81fd81f27d0d8fe795f510fe8d70c4ecad96405b0e1dbb57f0440fe9c398a30d/diff/var/www
1224444 /var/lib/docker/overlay2/81fd81f27d0d8fe795f510fe8d70c4ecad96405b0e1dbb57f0440fe9c398a30d/diff/var
1234612 /lib
1248080 /var/lib/docker/overlay2/81fd81f27d0d8fe795f510fe8d70c4ecad96405b0e1dbb57f0440fe9c398a30d/diff
1248096 /var/lib/docker/overlay2/81fd81f27d0d8fe795f510fe8d70c4ecad96405b0e1dbb57f0440fe9c398a30d
1342320 /var/lib/docker/overlay2/58e9df9d9e2e10efb3dcf68771edd172664f8d91e3aa2e0b280fd4549bfd2a91/diff/usr
1516440 /usr
1543656 /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff/var/www/discourse
1543664 /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff/var/www
1558580 /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff/var
1659548 /var/lib/docker/overlay2/58e9df9d9e2e10efb3dcf68771edd172664f8d91e3aa2e0b280fd4549bfd2a91/diff
1659564 /var/lib/docker/overlay2/58e9df9d9e2e10efb3dcf68771edd172664f8d91e3aa2e0b280fd4549bfd2a91
2040472 /var/lib/docker/overlay2/2749f8a24b3e28af399b256ecab7f2db0cb146939a0ef56e83858a0e696c3df6/diff/usr
2171304 /var/log/journal/d893af269dfb5f73239a5b6761d49ea0
2388612 /var/lib/docker/overlay2/2749f8a24b3e28af399b256ecab7f2db0cb146939a0ef56e83858a0e696c3df6/diff
2388628 /var/lib/docker/overlay2/2749f8a24b3e28af399b256ecab7f2db0cb146939a0ef56e83858a0e696c3df6
2461904 /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058/diff
2461924 /var/lib/docker/overlay2/7bedcd4746ebce6e3fe7bbb5ec2c987a1c046efc715fad1e53201b18b97b6058
3064672 /var/log/journal
3276268 /var/log
10107180        /var/lib/docker/overlay2
10131984        /var/lib/docker
10396840        /var/lib
14869684        /var
20007992        /

Ho ricevuto istruzioni aggiuntive su come gestire quanto segue:

I dettagli sono:

rofranoJohn Rofrano

1

20h

Il comando per rimuovere un’immagine è:

docker rmi {nome_immagine}

Dove {nome_immagine} è il nome dell’immagine che si desidera eliminare. È anche possibile utilizzare l’ID dell’immagine per eliminare l’immagine (ad esempio, docker rmi {id_immagine}). Questo è ciò che dovrai usare per eliminare un’immagine con il nome <none>.

Ad esempio, supponiamo che tu abbia le seguenti immagini:

REPOSITORY TAG IMAGE ID CREATED SIZE
my-new-image latest c18f86ab8daa 12 secondi fa 393MB
<none> <none> b1ee72ab84ae 1 minuto fa 393MB
my-image latest f5a5f24881c3 2 minuti fa 393MB

È possibile che l’immagine <none> non possa essere eliminata perché my-new-image sta utilizzando alcuni strati da essa. Quello che devi fare è:

docker rmi my-new-image:latest
docker rmi b1ee72ab84ae
docker built -t my-new-image .

Ciò rimuove my-new-image:latest che riutilizza gli strati dell’immagine <none>. Quindi elimina l’immagine <none> utilizzando il suo ID immagine b1ee72ab84ae. Infine, ricrea my-new-image creando tutti gli strati necessari.

Assicurati anche di non avere container fermati che utilizzano ancora l’immagine “senza tag” <none>. Usa docker ps -a per vedere tutte le immagini, comprese quelle che sono uscite. In tal caso, usa docker rm {id_container} per rimuovere il container e quindi prova a rimuovere nuovamente l’immagine <none>.

Cosa ne pensate tutti?

Penso che tu possa migliorare le cose qui:

Vedi questo scambio precedente:

e

3 Mi Piace

Questo ha risolto il problema e ho anche modificato la policy!

Voglio ancora rintracciare il problema con l’immagine <none> (dato che è ridicolo che occupi più di 2 GB), ma hai risolto il mio problema più immediato di creare spazio sufficiente per l’aggiornamento! Grazie!!

3 Mi Piace

Assolutamente vero! Per ora mi sto divertendo molto a imparare cose nuove, quindi il tempo ne vale la pena.