Saya baru saja mulai dengan Docker dan richt sekarang saya mencoba mencari cara untuk mengatur lingkungan Apache 2 / PHP dockerized pertama saya. Sampai sekarang saya telah menggunakan VM Linux penuh, di mana saya menggunakan file-file log yang ditulis ke / var / log / apache2, kemudian menggunakan "logrotate" untuk melompat ke file baru setiap hari.
File log terutama digunakan untuk deteksi kesalahan langsung (mis. Log on ke server dan gunakan lebih sedikit untuk membuka file access.log dan error.log saat ini) dan untuk fail2ban.
Jika saya benar, hal itu tidak dapat dilakukan di lingkungan Docker - terutama karena Anda biasanya tidak dapat masuk ke wadah untuk melihat log. Log juga akan hilang jika wadah dihapus.
Jadi: Apa metode yang paling umum untuk bekerja dengan / meniru / mengganti access.log / error.log dalam situasi itu? Apa solusi umum untuk lingkungan produksi dan pengembangan?
Ide saya sejauh ini termasuk menggunakan berbagi NFS (lambat dan dapat menyebabkan tabrakan nama file jika tidak hati-hati), dan logstash (tidak yakin apakah itu sepadan dengan usaha dan praktis untuk situs yang lebih kecil atau bahkan lingkungan dev?) Tapi saya yakin orang pintar telah datang dengan solusi yang lebih baik?
Tidak yakin apakah itu membuat perbedaan, tetapi saat ini saya mendasarkan gambar Docker saya di php: 5.6-apache .
docker attach <container name>
adalah cara yang baik untuk melihat stdout dari wadah Anda. Tetapi harap berhati-hati bahwa Jika Anda melakukan ctrl + d atau ctrl + c, itu akan MENGHENTIKAN (sigkill) tugas Anda yang sedang berlangsung. Jadi, Anda harus melepaskannya dengan benar menggunakan kunci melarikan dirictrl+p+q
. Jika Anda hanya ingin shell ke wadah Anda, saya lebih suka menggunakanexec
perintah di atas.