Docker uygulamalarının perde arkasında ne yaptığını bilmek ister misiniz? Günlükler olarak bilinen, konteynerlerinizin yaptıkları her hareketi gösteren gizli pencere hakkında daha fazla bilgi edelim. Günlükler sorunları çözmek için son derece faydalıdır. Ancak başlamadan önce Docker ve Docker Compose'un ne olduğuna hızlıca bir göz atalım.
Docker, uygulamalarınızı küçük konteynerler halinde paketlemenize ve çoğu işletim sisteminde herhangi bir bağımlılık olmadan çalıştırmanıza olanak tanır. Bu, uygulamalarınızı Containers adı verilen ve her yerde aynı şekilde çalışabilen küçük kutulara koymak gibidir. Container'lar hakkında bilgi sahibi olmak, Docker compose hakkında bilgi edinmenin önemli bir önkoşuludur. Bu yüzden öncelikle blogumuzu okumanızı tavsiye ederim. Konteynerleştirmenin faydaları.
Docker Compose, Docker ile birlikte gelir ve hizmetlerini, ağlarını ve depolamalarını zincirleyerek birden fazla kapsayıcılı uygulamanın geliştirilmesini basitleştirir. Docker konteyner günlükleri ve Docker Compose günlük kaydı, geliştiricilerin her konteynerin ne yaptığını görmesine yardımcı olur.
Peki Docker Compose Logs'u merak ediyor musunuz? Doğru yerdesiniz. Bu blog, Docker Compose günlüklerinin temellerini açıklayacak ve daha gelişmiş ayrıntıları kapsayacaktır. Projeleriniz için Docker Compose'tan en iyi şekilde nasıl yararlanabileceğinizi öğrenin.
Docker Compose Log'ların Önemi
Bir geliştiricinin Docker ile bir uygulama başlattığını ancak Docker günlüklerini ayarlamayı atladığını düşünün. İlk başta her şey yolunda görünüyor. Ancak çok geçmeden kullanıcılar hatalar bulur ve uygulama yavaşlar. Docker günlükleri olmadan geliştirici, Docker konteynerlerinde neyin yanlış gittiğini göremez. Docker Compose logları bu konteynerlerin detaylı kaydı gibidir. Olan bitenin her ayrıntısını kaydederler; bu, daha sonra sorunların bulunması ve çözülmesi açısından önemlidir.
Bir Geliştirici veya Sistem Yöneticisi olarak çok zincirli uygulamaların içinde ve arasında neler olduğunu anlamalısınız. Docker Compose günlüklerinin kullanışlı bir araç görevi gördüğü yer burasıdır. Peki bu günlükler neden gerekli?
-
Sorun Giderme ve Hata Ayıklama
Bir uygulama düzgün çalışmadığında veya hatalarla karşılaştığında liman işçisi günlüklerini kontrol edin. Docker günlükleri, sorunu izlemek için bakabileceğiniz ilk kaynaklardır. Geliştiriciler, docker günlüklerini inceleyerek ister koddaki bir hata, ister yanlış yapılandırma veya kaynak sorunları olsun, sorunların temel nedenini ve kaynağını tam olarak belirleyebilir.
-
Uygulama Sağlığının İzlenmesi
Uygulama günlüklerinin düzenli olarak izlenmesi, hizmetlerin genel durumunun anlaşılmasına yardımcı olur. Günlükler, tekrarlanan hatalar ve yavaş tepkiler gibi erken uyarı işaretlerini ortaya çıkarabilir. Bu kalıpları erken gözlemlemek, gelecekte olası sorunları önleyebilir.
-
Denetim ve Uyumluluk
Belirli standartlara uyması gereken uygulamalar için docker günlükleri, uygulamanın yönergelere uyup uymadığını gösteren ilk kanıttır. Bu günlükler aynı zamanda yetkili veya yetkisiz faaliyetlerin izlenmesinde de önemli bir rol oynar.
-
Optimizasyon
Günlükler, performans verileri sağlayarak yazılım optimizasyonu için değerli kaynaklardır. Örneğin geliştiriciler yavaş çalışan sorguları, verimsiz kod yollarını veya az kullanılan kaynakları tespit edebilir.
Docker Tarifi Hazırlama: Web Sunucusunu Dağıtma
Bu bölümde birlikte Docker tarifi oluşturmayı anlatacağız. Docker Compose loglarıyla yolculuğumuza başlamak için öncelikle bir şeyler oluşturmamız gerekiyor. Bu amaçla bir web sunucusu konuşlandıralım. Docker dosyası oluşturmak için çalıştırmanız yeterlidir nano Docker dosyası VPS'nizde aşağıdaki içerikleri içeren istediğiniz klasöre yerleştirin ve kaydedin:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Peki bu kodun her satırı ne işe yarıyor?
- Hafif bir tabanla başlıyoruz, nginx:alp.
- Daha sonra Nginx'in varsayılan karşılama sayfasını temizliyoruz.
- Daha sonra web sunucusunun portta dinleme yaptığından emin oluyoruz. 80.
- Son olarak Nginx sunucusunu çalıştırıyoruz. CMD.
Artık Dockerfile’ımız hazır, bir sonraki adım olan Docker Compose dosyasını oluşturmaya geçiyoruz. İşte yapısı docker-compose.yml dosya:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.html:/usr/share/nginx/html/index.html
Her bir parçayı tam olarak anlamak için parçalayalım:
- sürümünü kullanıyoruz 3.8.
- Bir sonraki satırda hizmetimize “adını veriyoruz”ağ“.
- Daha sonra Docker'a web sunucumuzu mevcut klasörden oluşturması talimatını veriyoruz.
- Web sunucumuzun bağlantı kurmasını sağlamak için ana makinemizdeki 8080 numaralı bağlantı noktasını konteynerimizin 80 numaralı bağlantı noktasına bağlarız.
- Son olarak birimlerin konfigürasyon haritaları index.html ana diskten konteynere. Daha sonra bir oluşturabilirsiniz. index.html İstediğiniz içeriği içeren bir dosya oluşturun ve onu istediğiniz yere yerleştirin. Docker dosyası Ve docker-compose.yml dosyalar mevcut.
Artık Docker Container’ımızı Docker Compose ile çalıştırmanın zamanı geldi. Basitçe koşuyoruz liman işçisi oluşturma.

Bir kez çalıştırdığınızda liman işçisi oluşturma komutunu verdiğinizde Docker gerekli görselleri internetten indirecek ve bunları yapılandırma dosyalarımızda anlatıldığı şekilde yapılandıracaktır.
Web sunucumuzun çalışır durumda olup olmadığını kontrol etmek için web tarayıcınızı açın, VPS IP adresinizi yazın ve 8080 numaralı bağlantı noktasına erişim isteyin.

Yan not olarak şunları kullanabilirsiniz: liman işçisi-oluşturma -d Konteyneri arka planda çalıştırmak için.
Docker Compose ile Günlüklere Erişim
Artık web sunucumuz hazır, çalışır durumda ve çalışıyor. Zaten günlükler oluşturuyor ve bu bilgileri daha sonra kullanmak üzere saklıyor. Docker oluşturma günlüklerinize erişmek, sorun giderme ve izleme için çok önemlidir. Peki bu günlükleri nasıl okuyabiliriz? burası liman işçisi tarafından oluşturulan günlükler kullanışlı oluyor. Yapılandırmanın bulunduğu klasörde olduğunuzdan emin olun ve bu komutu çalıştırın.

Bazen günlüklerin oluşturulduğu sırada canlı sürümünü görmek isteyebilirsiniz. Önceki komutun sonuna -f ekleyip çalıştırmanız yeterlidir. docker-oluşturma günlükleri -f.

Bazı Docker tabanlı uygulamalar, günlüklerinde size zaman damgaları sağlamayabilir. Bu nedenle kullanabilirsiniz liman işçisi-oluşturma günlükleri -t Günlüğün her satırına kayıtlı bir süre eklemek için.

Docker Logs ayrıca en son girişleri de görüntüleyebilir. Bunu başarmak için şunu kullanın: docker-compose günlükleri –tail 10 En son 10 günlük girişini görüntülemek için. Docker, günlük kuyruğunu oluşturur ve benzer şekilde docker günlük kuyruğu, tüm günlük geçmişini kaydırmadan son etkinlikleri hızlı bir şekilde kontrol etmek istediğinizde özellikle kullanışlıdır.

Docker Compose'u kullanmanın temel amacı, çok kapsayıcılı uygulamalar oluşturmaktır. Bu nedenle istediğiniz hizmete ilişkin belirli günlükleri okumanız gerekebilir. Bunu yapmak için şunu kullanın: liman işçisi-oluşturma günlükleri -f SERVICE, değiştirmeyi hatırlayarak HİZMET gerçek hizmet adınızla birlikte.

Docker Günlüğü
Docker ekosistemi, özellikle büyük ortamlarda, birleşik uygulamalar için daha karmaşık hale gelebilir. Zaten bildiğimiz gibi her konteyner günlükler oluşturur. Bu nedenle Günlük Sürücüsü olarak bilinen bir mekanizma, günlüklerin alınmasından, iletilmesinden ve saklanmasından sorumludur. Varsayılan olarak Docker, Günlük Sürücüsü için JSON dosyalarını kullanır, ancak aynı zamanda her birinin artıları ve eksileri olan diğer çeşitli sürücüleri de destekler.
Herkes, günlüklerin sorun giderme ve sistem performansını artırma da dahil olmak üzere çeşitli alanlarda önemli olduğu konusunda hemfikirdir. Aşağıda konteyner günlüklerini kullanmanın iki ana yönünü ele alacağız:
- İzleme: Logs’un birincil amacı izlemedir. Genellikle konteynere alınmış uygulamalarımızın genel durumunu ortaya koyarlar.
- Sorun giderme: Sorun olması durumunda günlükler uygulama hatalarını tespit etmemize yardımcı olur.
Liman işçisi günlükleri ve liman işçisi oluşturma günlükleri sürekli olarak oluşturulduğundan, tüm VPS depolama alanını doldurabilirler. Bu nedenle, Günlük Döndürme Politikası adı verilen disk alanını yönetmek için bir stratejiye ihtiyacımız var. Bu politikayı oluşturmak ve kullanmak için docker-compose.yml dosyayı açın ve açın. Ardından, aşağıdaki yapılandırmaya sahip bir günlük kaydı bölümü ekleyin:
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"
Sürekli ayarlayabilirsiniz maksimum boyut Ve maksimum dosya ihtiyaçlarınıza göre.
Docker Günlükleri Teslimat Modelleri
Mühendisler, daha gelişmiş ortamlarda Syslog, fluentd ve diğerleri gibi varsayılan JSON sürücülerinden farklı bir günlük kaydı modelini tercih edebilir. Ancak, JSON dosyası sürücüsünün çoğu günlük kaydı senaryosu için uygun olduğunu ve varsayılan moddan sapmaya gerek olmayabileceğini unutmamak önemlidir.
Uygulamanızın mimarisine veya organizasyonel gereksinimlerine bağlı olarak Günlük Toplayıcılar olarak bilinen merkezi günlük kaydı çözümlerini kullanmak zorunda kalabilirsiniz. Bu hizmetler dahil Elasticsearch, Logstash, Kibana vb. çeşitli kaynaklardan günlükleri almak ve bunları tek bir merkezi konumda birleştirmek, depolamak ve analiz etmek için tasarlanmıştır.
Bunun tersine, günlüklerinizi daha uygun maliyetli depolama çözümleri kullanarak saklamalısınız. VPS'nizin yüksek hızlı ve pahalı depolama kullandığı senaryoyu düşünün; Yalnızca gelecekte başvurmak üzere ihtiyaç duyabileceğiniz günlükleri depolamak için bu tür premium kaynakları kullanmak ekonomik olmayabilir.
Her birinin avantajları ve dezavantajları olan çok sayıda kayıt modeli mevcuttur. Her modeli dikkatlice değerlendirmek ve özel ihtiyaçlarınıza göre bir tane seçmek çok önemlidir.
Web sitenizi veya uzak masaüstünüzü barındırmak için kendinize en ucuz fiyata ekonomik veya premium Linux VPS edinin. VPS, daha fazla verimlilik için Linux KVM üzerinde çalışır ve daha yüksek hız için NVMe SSD depolama ile güçlü donanım üzerinde çalışır.
Devamını okuÇözüm
Docker Compose günlüklerini anlamak çok önemlidir. Docker uygulamalarınızı iyi bir şekilde yönetmenize ve hata ayıklamanıza yardımcı olurlar. Bu günlüklere erişmeyi ve bunları izlemeyi öğrenmek, sorun çözmeyi geliştirir ve uygulamanızın performansını ve güvenliğini artırır. Sistemleri geliştirirken veya yönetirken Docker Compose günlüklerini kullanmak çok önemlidir. Konteyner yönetiminizin etkili olmasını sağlarlar.
SSS
Docker Compose günlüklerini zamana göre nasıl filtreleyebilirim?
Docker Compose, günlükleri zamana göre filtrelemek için doğrudan bir yöntem sunmaz. Ancak, desen eşleştirmesi için günlükleri grep aracılığıyla yönlendirerek filtreleyebilirsiniz. Örneğin şunları kullanabilirsiniz: docker-compose logs | grep "2023-04-06", "2023-04-06"yı aradığınız belirli tarih veya saat düzeniyle değiştirin.
Docker Compose ile başlatılan konteynerler nasıl durdurulur?
docker-compose.yml dosyasını içeren dizine gidin ve docker-compose down komutunu çalıştırın.
Günlük dosyaları manuel olarak nasıl kaldırılır?
docker-compose.yml dosyanızda günlük döndürmeyi yapılandırmak yerine, Docker JSON günlük dosyalarını /var/lib/docker/containers/<container_id>/ konumundan manuel olarak kaldırabilirsiniz. Bunu yapmadan önce Docker konteyner kimliğini docker ps -a ile tanımlamanız gerekir.
Docker günlüklerini takip edebilir misiniz?
Evet, yapabilirsin. Bunun için -f veya –follow seçeneğiyle birlikte docker logs komutunu kullanmalısınız. Bu sizin için Docker günlüklerini kuyruklayacaktır.