Il collega ha reagito dicendo che il sistema non poteva accedere all'ambiente di test, ha controllato decisamente il monitoraggio, ha rilevato che la porta di servizio era aperta, ha effettuato l'accesso al server per controllare l'utilizzo del disco rigido e ha scoperto che la directory montata su un certo disco era piena, come mostrato nella figura sotto:
Il disco è al 100% il disco utilizzato dall'applicazione docker, e inizialmente si sospetta che l'impossibilità di scrivere file di log impedisca al modulo di fornire servizi al mondo esterno.
Cerca file grandi e infine localizzali nella sottodirectory /var/lib/docker/containers/Un certo file json.log occupa 30G。
Pulizia dei registri dei contenitori in corso (trattamento dei sintomi)
Per permettere al contenitore di servirsi normalmente immediatamente. Soluzione temporanea: pulire rapidamente questi file, liberare spazio su disco rigido, lo script è il seguente:
Se il container docker è in esecuzione, dopo aver eliminato i log usando rm -rf, scoprirai che lo spazio su disco non viene liberato tramite df -h. Il motivo è che su sistemi Linux o Unix, eliminare un file tramite rm-rf o un file manager lo scollega dalla struttura delle directory del file system. Se il file viene aperto (e c'è un processo in uso), il processo potrà comunque leggere il file e lo spazio su disco sarà occupato continuamente. La posa corretta è cat /dev/null > *-json.log, e ovviamente puoi anche riavviare Docker dopo averlo rimosso tramite rm-rf.
Osservazione:Crea un nuovo script nella directory del disco libero, altrimenti lo script non può essere creato normalmente。
Impostazione della dimensione del log del container Docker (causa principale)
Imposta la dimensione massima del log di un servizio container e aggiungi un parametro per impostare la dimensione logaritmica del container all'avvio del container, ad esempio:
dimensione max=500m, il che significa che il limite massimo della dimensione del tronco di un container è 500M, max-file=3, il che significa che un contenitore ha tre log, ovvero id+.json, id+1.json e id+2.json.
Docker è migrato su un nuovo disco
I dati correlati a Docker esistono sul disco di sistema, il disco di sistema è solo 50G e il disco dati è 100G, come spostare i dati esistenti di Docker sul disco dati?
Per docker installato usando il metodo CentOS system yum, la directory di installazione predefinita dovrebbe essere: /var/lib/docker
Docker versione < v17.05.0
Poiché dockerd può specificare il percorso di archiviazione immagine e contenitore attraverso il grafo dei parametri, come –graph=/var/lib/docker, basta modificare il file di configurazione per specificare i parametri di avvio.
Il file di configurazione di Docker può impostare la maggior parte dei parametri di processo in background, e la posizione di archiviazione in ogni sistema operativo è incoerente, in Ubuntu: /etc/default/docker, e in CentOS: /etc/sysconfig/docker.
Docker versione >= v17.05.0
Poiché Docker ha ufficialmente disattivato la funzione dei grafi in questa versione, se hai la versione di Docker >= v17.05.0 installata sulla tua macchina, non puoi modificare la directory di installazione (storage) predefinita di Docker specificando il parametro grafo nel file di configurazione /etc/default/docker.
Ci sono altri modi in cui la nuova versione di Docker può raggiungere il nostro obiettivo di modificare la directory di installazione (storage): modificando (new) /etc/docker/daemon.json per specificare il valore del parametro data-root.
Configurazione della directory dei demoni Docker:Il login del link ipertestuale è visibile.
Preparazione alla migrazione: fermare tutte le applicazioni container e fermare i servizi docker (systemctl stop docker).
Crea una nuova directory in /home/software con il seguente comando:
Migra la directory /var/lib/docker nella directory /home/software/docker (si consiglia copiarla, e poi eliminare il file della directory /var/lib/docker quando tutto va bene), il comando è il seguente:
Quando si copiaAssicurati di aggiungere il parametro -a, altrimenti alcuni contenitori non funzioneranno correttamente!!!!!
Visualizza tutte le connessioni soft e i file point nella directory corrente con il seguente comando:
Modifica il file /etc/docker/daemon.json con il seguente comando:
Salva, poi avvia il servizio docker con il seguente comando:
Avvio il contenitore, i test stanno tutti girando normalmente e infine,Elimina la cartella /var/lib/docker。
(Fine)
|