Docker ve richt ile yeni başladım, şimdi ilk dockerized Apache 2 / PHP ortamımı nasıl kuracağımı anlamaya çalışıyorum. Şimdiye kadar, / var / log / apache2'ye yazılan günlük dosyalarını kullandıktan sonra her gün yeni bir dosyaya atlamak için "logrotate" komutunu kullandığım tam Linux VM'leri kullanıyorum.
Günlük dosyaları temel olarak anında hata tespiti için kullanılır (yani sunucuda oturum açın ve geçerli access.log ve error.log dosyalarını açmak için daha az kullanın) ve fail2ban için kullanılır.
Doğruysam, bu bir Docker ortamında uygulanamaz - çünkü genellikle günlüklere bakmak için kapsayıcılara giriş yapamazsınız. Kap kaldırılırsa günlükler de kaybolacaktır.
Bu durumda / emulate / replace access.log / error.log ile çalışmak için en yaygın yöntem nedir? Hem üretim hem de geliştirme ortamları için ortak çözümler nelerdir?
Şu ana kadarki fikirlerim arasında NFS paylaşımı (yavaş ve dikkatli değilse dosya adı çarpışmalarına neden olabilir) ve logstash (daha küçük siteler veya hatta geliştirici ortamlar için çabaya değip değmeyeceğinden emin değil misiniz?) daha iyi çözümler buldunuz mu?
Bir fark yaratıp yaratmadığından emin değilim, ancak şu anda Docker görüntümü php: 5.6- apache'ye dayandırıyorum .
docker attach <container name>
, konteynırınızdan stdout'u görmenin iyi bir yoludur. Ancak, ctrl + d veya ctrl + c yaparsanız, devam eden görevinizi Feshedeceğini (sigkill) unutmayın. Bu yüzden kaçış tuşunu kullanarak doğru şekilde ayırmanız gerekirctrl+p+q
. Sadece konteynerinize kabuk eklemek istiyorsanız,exec
yukarıdaki komutu kullanmayı tercih ederim .