Sto appena iniziando con Docker e Richt ora sto cercando di capire come impostare il mio primo ambiente Apache 2 / PHP dockerizzato. Fino ad ora ho usato macchine virtuali Linux complete, dove ho usato i file di registro scritti in / var / log / apache2, quindi ho usato "logrotate" per passare a un nuovo file ogni giorno.
I file di log sono stati utilizzati principalmente per il rilevamento immediato degli errori (ad esempio, accedere al server e utilizzare meno per aprire i file access.log e error.log correnti) e fail2ban.
Se ho ragione, ciò non è praticabile in un ambiente Docker, principalmente perché di solito non è possibile accedere ai contenitori per dare un'occhiata ai registri. Inoltre i log andranno persi se il contenitore viene rimosso.
Quindi: qual è il metodo più comune con cui lavorare / emulare / sostituire access.log / error.log in quella situazione? Quali sono le soluzioni comuni per ambienti di produzione e sviluppo?
Le mie idee finora includono l'uso di una condivisione NFS (lenta e può causare collisioni di nomi di file se non attenti) e logstash (non sei sicuro che valga la pena e praticabile per siti più piccoli o persino ambienti di sviluppo?) Ma sono sicuro che le persone intelligenti hai trovato soluzioni migliori?
Non sono sicuro che faccia la differenza, ma attualmente sto basando la mia immagine Docker su php: 5.6-apache .
docker attach <container name>
è il buon modo per vedere stdout dal tuo contenitore. Ma tieni presente che se fai ctrl + d o ctrl + c, TERMINERA (sigkill) il tuo compito in corso. Quindi devi staccarlo correttamente usando il tasto Escctrl+p+q
. Se vuoi solo sgusciare nel tuo contenitore, preferisco usare ilexec
comando sopra.