Vuoi sapere cosa fanno le app Docker dietro le quinte? Impariamo di più sulla finestra segreta, nota come log, nei tuoi contenitori che mostra ogni mossa che fanno. I registri sono estremamente utili per risolvere i problemi. Ma prima di iniziare, diamo una rapida occhiata a cosa sono Docker e Docker Compose.
Docker ti consente di comprimere le tue applicazioni in piccoli contenitori ed eseguirle sulla maggior parte dei sistemi operativi senza dipendenze. È come mettere le tue app in piccole scatole chiamate Contenitori, che possono funzionare allo stesso modo ovunque. Conoscere i contenitori è un prerequisito importante per apprendere la composizione di Docker. Quindi, ti incoraggio prima a leggere il nostro blog su i vantaggi della containerizzazione.
Docker Compose viene fornito con Docker e semplifica lo sviluppo di più applicazioni containerizzate concatenandone servizi, reti e archiviazione. I log del contenitore Docker e la registrazione di Docker Compose aiutano gli sviluppatori a vedere cosa fa ciascun contenitore.
Allora, sei curioso dei log di composizione di Docker? Sei nel posto giusto Questo blog spiegherà le nozioni di base dei log di Docker Compose e tratterà dettagli più avanzati. Scopri come sfruttare al meglio Docker Compose per i tuoi progetti.
L'importanza dei log di composizione di Docker
Immagina che uno sviluppatore avvii un'app con Docker ma salti la configurazione dei log di Docker. All'inizio sembra tutto a posto. Ma presto gli utenti riscontrano errori e l'app rallenta. Senza i log Docker, lo sviluppatore non può vedere cosa è andato storto all’interno dei container Docker. I log di Docker Compose sono come un record dettagliato di questi contenitori. Registrano ogni dettaglio di ciò che accade, il che è importante per individuare e risolvere i problemi in un secondo momento.
In qualità di sviluppatore o amministratore di sistema, devi capire cosa succede all'interno e tra le applicazioni multicatena. È qui che i log di Docker Compose fungono da strumento utile. Allora perché sono necessari questi registri?
-
Risoluzione dei problemi e debug
Controlla i log della finestra mobile quando un'applicazione non viene eseguita correttamente o rileva errori. I log Docker sono le prime risorse che puoi consultare per tracciare il problema. Esaminando i log del docker, gli sviluppatori possono individuare la causa principale e l'origine dei problemi, che si tratti di un bug nel codice, di un'errata configurazione o di problemi con le risorse.
-
Monitoraggio dell'integrità dell'applicazione
Il monitoraggio regolare dei log delle applicazioni aiuta a comprendere lo stato generale dei servizi. I log possono rivelare segnali di allarme precoci, come errori ripetuti e risposte lente. L’osservazione tempestiva di questi modelli può prevenire potenziali problemi in futuro.
-
Controllo e conformità
Per le applicazioni che devono seguire standard specifici, i log docker sono la prima prova che mostra se l'applicazione aderisce alle linee guida. Questi registri svolgono anche un ruolo essenziale nel monitoraggio delle attività autorizzate o non autorizzate.
-
Ottimizzazione
I log sono risorse preziose per l'ottimizzazione del software poiché forniscono dati sulle prestazioni. Ad esempio, gli sviluppatori possono identificare query con esecuzione lenta, percorsi di codice inefficienti o risorse sottoutilizzate.
Creazione di una ricetta Docker: distribuzione di un server Web
In questa sezione, esamineremo insieme la creazione di una ricetta Docker. Dobbiamo prima creare qualcosa per iniziare il nostro viaggio con i log di Docker Compose. Distribuiamo un server web per questo scopo. Per creare un Dockerfile, esegui semplicemente nanoDockerfile nella cartella desiderata sul tuo VPS con i seguenti contenuti e poi salvala:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Allora, cosa fa ogni riga di questo codice?
- Iniziamo con una base leggera, nginx:alpino.
- Successivamente, cancelliamo la pagina di benvenuto predefinita di Nginx.
- Quindi, ci assicuriamo che il server web sia in ascolto sulla porta 80.
- Infine, eseguiamo il server Nginx con CMD.
Ora che il nostro Dockerfile è pronto, passeremo al passaggio successivo, ovvero la creazione del file Docker Compose. Ecco la struttura del docker-compose.yml file:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.html:/usr/share/nginx/html/index.html
Analizziamolo per comprendere completamente ogni parte:
- Stiamo usando la versione 3.8.
- Nella riga successiva chiameremo il nostro servizio “web“.
- Quindi, chiediamo a Docker di creare il nostro server web dalla cartella corrente.
- Colleghiamo la porta 8080 del nostro host alla porta 80 del nostro container per consentire al nostro server web di stabilire una connessione.
- Infine, le mappe di configurazione dei volumi index.html dal disco host al contenitore. Successivamente, puoi creare un file index.html file con qualsiasi contenuto desideri e posizionalo dove si trova il file Dockerfile E docker-compose.yml esistono file.
Ora è il momento di eseguire il nostro contenitore Docker con Docker Compose. Semplicemente, corriamo docker-componi.

Una volta eseguito il file docker-componi comando, Docker scaricherà le immagini richieste da Internet e le configurerà come indicato nei nostri file di configurazione.
Per verificare se il nostro server web è attivo e funzionante, apri il browser web, digita l'indirizzo IP del tuo VPS e richiedi l'accesso alla porta 8080.

Come nota a margine, puoi usare docker-comporre -d per eseguire il contenitore in background.
Accesso ai log con Docker Compose
Ora il nostro server web è pronto, attivo e funzionante. Sta già generando registri e memorizzando queste informazioni per un uso successivo. L'accesso ai log di composizione della finestra mobile è essenziale per la risoluzione dei problemi e il monitoraggio. Ma come leggere questi log? Questo è dove log di composizione docker torna utile. Assicurati di essere nella cartella in cui esiste la configurazione ed esegui quel comando.

A volte, potresti voler vedere la versione live dei log mentre vengono generati. Aggiungi semplicemente -f alla fine del comando precedente ed esegui docker-compose logs -f.

Alcune applicazioni basate su Docker potrebbero non fornire timestamp nei loro registri. Pertanto, è possibile utilizzare docker-compose logs -t per aggiungere un tempo registrato per ogni riga del registro.

I log Docker possono anche visualizzare le voci più recenti. Per raggiungere questo obiettivo, utilizzare docker-compose logs –tail 10 per visualizzare le ultime 10 voci di registro. Docker compone la coda dei log e, allo stesso modo, la coda dei log è particolarmente utile quando si desidera controllare rapidamente l'attività recente senza scorrere l'intera cronologia dei log.

Lo scopo principale dell'utilizzo di Docker Compose è creare applicazioni multi-contenitore. Pertanto, potrebbe essere necessario leggere registri specifici per il servizio desiderato. Per fare ciò, utilizzare docker-compose logs -f SERVIZIO, ricordandosi di sostituire SERVIZIO con il nome effettivo del servizio.

Registrazione Docker
L'ecosistema Docker può diventare più complesso per le applicazioni convergenti, soprattutto in ambienti di grandi dimensioni. Come già sappiamo, ogni contenitore genera log. Pertanto, un meccanismo noto come Logging Driver è responsabile della ricezione, consegna e archiviazione dei log. Per impostazione predefinita, Docker utilizza file JSON per il driver di registrazione, ma supporta anche vari altri driver, ciascuno con i propri pro e contro.
Tutti concordano sul fatto che i log sono fondamentali in varie aree, tra cui la risoluzione dei problemi e il miglioramento delle prestazioni del sistema. Di seguito, tratteremo due degli aspetti principali dell'utilizzo dei log del contenitore:
- Monitoraggio: Lo scopo principale dei log è il monitoraggio. In genere rivelano lo stato generale delle nostre applicazioni containerizzate.
- Risoluzione dei problemi: In caso di problemi, i registri ci aiutano a rilevare i problemi dell'applicazione.
Poiché i registri docker e i registri di composizione docker vengono generati continuamente, potrebbero riempire tutto lo spazio di archiviazione del VPS. Pertanto, abbiamo bisogno di una strategia per gestire lo spazio su disco chiamata policy di rotazione dei log. Per creare e utilizzare questa policy, tornare a docker-compose.yml file e aprirlo. Quindi, aggiungi una sezione di registrazione con la configurazione seguente:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.htm:/usr/share/nginx/html/index.htm logging: driver: json-file options: max-size: "200k" max-file: "10"
Puoi adattarti costantemente dimensione massima E max-file in base alle tue esigenze.
Modelli di distribuzione dei log Docker
Gli ingegneri potrebbero optare per un modello di registrazione diverso in ambienti più avanzati rispetto ai driver JSON predefiniti, come Syslog, fluentd e altri. Tuttavia, è importante ricordare che il driver del file JSON è adatto alla maggior parte degli scenari di registrazione e potrebbe non essere necessario discostarsi dalla modalità predefinita.
A seconda dell’architettura della tua applicazione o dei requisiti organizzativi, potresti essere costretto a utilizzare soluzioni di registrazione centralizzate note come Aggregatori di log. Questi servizi, inclusi Ricerca elastica, Logstash, Kibana, ecc., sono progettati per ricevere registri da varie fonti e consolidarli, archiviarli e analizzarli in un'unica posizione centrale.
Al contrario, dovresti archiviare i tuoi registri utilizzando soluzioni di archiviazione più convenienti. Considera lo scenario in cui il tuo VPS utilizza uno spazio di archiviazione costoso e ad alta velocità; potrebbe non essere economico utilizzare tali risorse premium per archiviare registri di cui potresti aver bisogno solo per riferimento futuro.
Sono disponibili numerosi modelli di registrazione, ciascuno con vantaggi e svantaggi. Valutare attentamente ogni modello e selezionarne uno in base alle proprie specifiche esigenze è fondamentale.
Procurati un VPS Linux economico o premium per l'hosting del tuo sito web o desktop remoto, al prezzo più conveniente in circolazione. VPS in esecuzione su Linux KVM per una maggiore efficienza e funzionante su hardware potente con storage SSD NVMe per una maggiore velocità.
Per saperne di piùConclusione
Comprendere i log di Docker Compose è fondamentale. Aiutano a gestire ed eseguire correttamente il debug delle applicazioni Docker. Imparare ad accedere e monitorare questi registri migliora la risoluzione dei problemi e aumenta le prestazioni e la sicurezza della tua app. Sia che si tratti di sviluppare o amministrare sistemi, l'utilizzo dei log di Docker Compose è essenziale. Si assicurano che la gestione dei contenitori sia efficace.
Domande frequenti
Come posso filtrare i log di Docker Compose in base all'ora?
Docker Compose non offre un metodo diretto per filtrare i log in base all'ora. Tuttavia, puoi filtrare i log trasmettendoli tramite grep per la corrispondenza dei modelli. Ad esempio, puoi utilizzare: docker-compose logs | grep “2023-04-06”, sostituendo “2023-04-06” con lo schema di data o ora specifico che stai cercando.
Come fermare i contenitori avviati con Docker Compose?
Passare alla directory che contiene il file docker-compose.yml ed eseguire il comando docker-compose down.
Come rimuovere manualmente i file di registro?
Invece di configurare la rotazione dei log nel file docker-compose.yml, puoi rimuovere manualmente i file di log Docker JSON da /var/lib/docker/containers/<container_id>/. Prima di farlo, dovresti identificare l'ID del contenitore Docker con docker ps -a.
Puoi seguire i log di Docker?
Sì, puoi. Per questo dovresti usare il comando docker logs insieme all'opzione -f o –follow. Questo seguirà i log di Docker per te.