Giriş Giriş Giriş
Docker konteynerlerini tarihe kadar tutmak, herhangi bir üretim dağıtımının temel bir parçasıdır, ancak çoğu zaman çok sayıda kontraseptifin bulunduğunda, eksik bir güvenlik yamaı veya bir güncellemeniz, güncellemelerini takip edebilir, konteynerleri durdurur ve bunları yeniden başlatmanın sadece zaman-konuşturmadığı sağlam bir çözüm vardır: Watchtowersuming ancak aynı zamanda, özellikle de çalışan konteynerlerinizi takip eder ve en kısa sürede güvenli bir ortamdaki güncellemeleri uygularsınız.
Watchtower nedir?
Watchtower, otomatik olarak Docker konteynerlerini her zaman baz görüntülerinin bir kayıtta yenilendiğini ve toplumun ()GitHub havuzunu [FLT 1: 1) durdurur, aynı yapılandırmayı, çevre değişkenlerini kullanarak çalışır ve her zaman yükleme işleminizi izler. Watchtower, yeni bir görüntünün var olduğunu algılar, en son görüntüyü çeker, çalışan konteyneri gider ve çalıştırır.
Nasıl Watchtower Works
Watchtower, Docker daemon ile Docker soketi ile iletişim kuruyor ([Dönetici:0) Varsayılan olarak, tüm çalışan konteynerleri ev sahibine yönlendirerek, ancak belirli konteynerlere, etiketler veya konteyner isimleri kullanarak sınırlandırmanızı sağlayabilirsiniz. Yeniden yapılandırılabilir bir aralıkta güncelleştirmeler için kontrol eder (default, Slack şu anda çalışan bir görüntünün otomatik olarak yapılandırıldığında, Watchtowers görüntüyü çeker ve kontrollü bir yeniden başlatmanızı sağlar.
Watchtower ile Automating Updates'in Anahtar Faydaları
Geliştirilmiş Güvenlik
Güvenlik konteyner güncellemeleri için birincil sürücüdür. Docker görüntüleri, altta AG paketlerinde sürekli olarak ayak uydurulur (örneğin, Alp, Ubuntu) veya uygulama bağımlılıklarınızı azaltır.Eski bir görüntüyü çalıştıran bir konteyner, bilinen Ortak Vulner yükümlülükleri ve Exposures (CVEs) gözlemler içerir.
Operasyonel Verimlilik
Kılavuz güncellemeleri SSH erişimi gerektirir, görüntüleri çekmek için komutlar ve hizmet kesintisinden kaçınmak için yeniden başlamak için dikkatli bir şekilde orkestrasyon gerektirir. On veya yüzlerce konteynerle ortamlarda, bu üstten çekilmeye yol açan bir görüntüden sonra -ki manuel müdahaleye olan ihtiyacı ortadan kaldırır. Watchtower, ekibinizin karakteristik gelişim, izleme ve diğer yüksek değerli görevlere odaklanmasını sağlar.
Bilinç Across Environments
Watchtower, gelişim, yönlendirme ve üretim ortamları aynı konfigürasyonla dağıtılabilir. Bu, tüm ortamların aynı görüntü sürümlerini çalıştırdığı, “benim makinemde çalışır” sorunlarının azaltılmasına yardımcı olur.
Az önce
Watchtower yapılandırıldığında, istenmeyen çalışır. Artık konteynerleri güncellemek için düzenli bakım pencerelerini planlamanız gerekmez, aynı baş hesabı ile daha büyük dağıtımları yönetmenize izin verirsiniz. Logs ve bildirimler, güncelleştirmeler gerçekleştiğinde açık bir denetim izi sağlar ve başarılı olup olmadıklarında.This azaltır.
Ayar Up Watchtower
İşbirlikçi Watchtower basittir. önerilen yaklaşım, Docker soketine bağlanan bir Docker konteyneri olarak çalıştırmaktır. Aşağıda bir adım adım adım kılavuzu.
Önlemler Önlemler
- Docker ev sahibi makineye (Docker Engine 19.03 veya daha sonra tavsiye edilir).
- Araçlarınızın görüntü kayıtlarının depolandığı Docker görüntü kayıtlarına erişim (Docker Hub, özel kayıt vb.).
- Docker CLI veya Docker Compose ile temel tanıdıklığı.
Docker CLI kullanarak temel iş işleri
- [FONT=0]Pull the Watchtower image:
). - [FONT:0]Run Watchtower as a background service:
[Dönetici:0][Döneticileri ile takip etmeye başlar. - [FONT:0) Bu işe yaradığı anlamına gelir:
).
Docker Komele ile işleniyor
Daha iyi yönetilebilirlik için, özellikle üretimde, Docker Komp. Create aİLFLT:4)
version: '3.8'
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_POLL_INTERVAL=3600 # check every hour
- WATCHTOWER_CLEANUP=true # remove old images after update
logging:
driver: json-file
options:
max-size: 10m
max-file: 3
Runtower'a başlamak için Runtower.TheETHFLT:7) ortamı değişkeni saniyede kontrol frekansı ayarlar.Sing it toETHFLT:8", Watchtower checks for updates every hour, enable updates without extremeload on the records or Docker daemon.
Yapı Seçenekleri
Watchtower, çevre değişkenleri ve komut satırı bayrakları ile oldukça yapılandırılabilir. Aşağıda en faydalı seçenekler vardır.
Kirlilik
Ekranda bulunanlar için, (veya 0,9) bayrak (veya 0,5) ayarlandığında, güncelleme için sık sık sık göz ardı edilir. varsayılan 86400 saniye (24 saat) Geliştirme veya hızlı dönüş dağıtımları için, 300 (5 dakika gibi daha kısa bir aralığı ayarlayabilirsiniz.
Eski Görüntülerin Temizlenmesi
[FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=
Bildirimler
Watchtower sizi güncelleme olayları hakkında bilgilendirebilir. Desteklenen bildirim kanalları e-posta (SMTP), Slack, Microsoft Teams, Telegram ve daha fazlası. onları, HorizonT:13 gibi çevre değişkenleri ile yapılandırın. Örneğin, Slack bildirimleri:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WATCHTOWER_NOTIFICATIONS=slack \
-e WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://hooks.slack.com/services/Txxx/Bxxx/xxx \
containrrr/watchtower
Bildirimler, manuel olarak logları gözden geçirmeden güncelleme aktivitelerini takip etmenize yardımcı olur.
Konteyner Filtreleme
Varsayılan olarak, Watchtower tüm çalışan konteynerleri izler. Belirli konteynerlere güncelleştirmeleri sınırlandırmak için, bir Docker etiketiyle birlikte bayrak kullanın.Bir etiketliFLT:17 eklemek istediğiniz konteyner isimlerini güncellemek için. örneğin, sadece bir Docker etiketi ile bir araya gelmek için aşağıdakiler için: “Uygunluk|sayılar ve/uygunluklar” olarak adlandırılır.
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower nginx postgres
Takip Verbose Logs
Enable debug, Watchtower'in eylemleri hakkında ayrıntılı bilgi görmek için [[Döneticileri ile giriş yapın.Bu, güncelleştirmelerin doğru bir şekilde tespit edilmesi ve uygulanması için ilk kurulum sırasında kullanışlıdır.
Gelişmiş Kullanım Vakaları
Özel Kayıtlardan Konteynerleri
Görüntüleriniz özel bir kayıtta (örneğin, AWS ECR, Azure Konteyner Kayıt, veya kendi barındırılan bir Harbor), Watchtower'in kimlik doğrulamasına ihtiyacı var.Docker imar dosyasını veya çevre değişkenlerini kullanabilirsiniz. En basit yöntem, kayıtta bulunan kayıtta oturum açma işlemini yapmak için oturum açmanızdır.
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /root/.docker/config.json:/config.json \
containrrr/watchtower
Alternatif olarak, Docker sırları veya daha güvenli bir krimine yönetim için çevresel değişkenleri kullanın (örneğin, resmi Watchtower belgeleri).
Devlet Hizmetleri için Demiryolu Güncellemeleri
Devletli konteynerler (databases, önbellekler), otomatik güncellemeler riskli olabilir çünkü görüntü güncellemeleri şema değişiklikleri tanıtabilir. Watchtower veri göçüyle başa çıkmıyor.En iyi bir uygulama genellikle güvenli ve tavsiye edilmez.).[FLT] otomatik güncellemeler devletli konteynerler için otomatik güncellemeler sağlar.
CI /CD Boruları ile birlikte
Watchtower, kısa bir anket aralığına (örneğin, 60 saniye) uygun bir şekilde yeni bir görüntüyü otomatik olarak test etmek için sorunsuz bir şekilde dağıtım döngüsü oluşturabilecektir.Retower, the short pollOps or CI/CD iş akışına iyi bir şekilde uyum sağlar. Bu, özel senaryolar olmadan sorunsuz bir şekilde sürekli bir dağıtım döngüsü oluşturabilir. Birçok takım yeni inşaa ortamları kullanarak yeni inşaları test etmek için, ardından güncelleştirmenin manuel veya diğer orkestrasyon araçlarıyla aynı görüntüleri teşvik eder.
En İyi Uygulamaları
- [FONT:0) Önce çevreleri kullanıyor: [Dönetici: [Dönetici] Deploy Watchtower in a non-proprodüksiyon ortamında and monitor updates for a few days to enable no unexpected behavior. then roll out to production with the same configuration.
- [FONT:0)Enable bildirimleri:[[Dönetici: 8) Slack, e-posta veya diğer uyarılar oluşturun, böylece ekibiniz hemen güncellemeler ve herhangi bir potansiyel başarısızlıklardan haberdardır. Bu, bir güncellemenin sorunlara neden olup olmadığını hızla geri taşımaya yardımcı olur.
- [FONT:0]Sağlık kontrolleri ile Kombine:[Dönetici: 1) konteynerlerinizin sağlık kontrollerini tanımlamasını sağlayın. Watchtower, trafiği tamamen başlamayan konteynerlere taşımalarını engeller.
- [FONT=0)GÖRÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ: 0: 0: 0: 0:0, Önceki Görüntüler Uygulamayı Görülen Görüntüler İçin Bir Bakıştavaşüm, Görüntü katmanları için ayrı bir yedekleme stratejisini Değiştirebilir Uygulamalışücretsin.
- [FONT=0) Disk alanı: [Dönetici: [Döntgenme ile bile büyük görüntü güncellemeleri, çekme sırasında geçici olarak ekstra alanı tüketebilir. Dosya sistemini doldurmadan kaçınmak için disk kullanımı uyarıları ayarlayın.
- [FONT:0)Öyle bir inceleme girişleri: Periyodik check Watchtower logs ([DÜŞÜN) güncellemelerini onaylayan oturumlar beklendiği gibi gerçekleşiyor.
- [FONT:0]Güncel İzleme kendini şöyle değerlendiriyor:[Dönetici:[Dönetici:0) Watchtower kendisini takip eden setteki konteyneri içeriyorsanız kendini güncelleyebilir (kendisini güncellemektesiniz).Bu, her zaman en son özellikleri ve güvenlik düzeltmeleri sağlar.
- [FONT:0) Resim imzası ve doğrulama ile birlikte:) Geliştirilen güvenlik için, yapılandırılan Docker Content Trust to only run signed images. Watchtower respects this by roll only reliable images.
Potansiyel Pitfalls ve Them'dan Nasıl Kaçırmak
Upstream Images'te Farklı Değişiklikler
En büyük risk, uygun olmayan bir değişiklik tanıtmak için güncel bir görüntüdür - Yeni bir varsayılan yapılandırma veya bir deprecated API uç noktası olarak - uygulamanızın başarısız olmasına neden olur. Mitigation: belirli görüntü sürümlerine sıkıca çiftleşen veya pin taban görüntü sürümlerini silmek için etiket filtrelemesi kullanın.
Zero-Downtime Constraints
Watchtower, yeni sürüme son vererek bir konteyneri yeniden başlatır. Bu, bir seferde birden fazla kopya çalıştırdığınız sürece, yük dengeleme hizmetleri için, Docker Swarm veya Kubernetes kullanmayı düşünün ve bir seferde sadece güncelleme kopyalarını yapılandırmanız için bir süre boyunca (bakınız bu yerel olarak yönetmekle birlikte; orkestrasyon araçlarını kullanabilirsiniz).
İzin Sorunları
Watchtower, Docker soketine, Docker üzerinde kök düzeyinde kontrol sağlayan Docker'e erişim gerektirir.Bu, yalnızca güvenilen bir host üzerinde çalışır ve sınırlı yetenekleri olan özel bir kullanıcı kullanmayı düşünün.Ayrıca, [[Dört.Ç.,FLT:33|e.g.g.END|s.) erişim kısıtlamak için, ancak bu karmaşıktır.
Kayıt Ol Limitleri
Frequent kirletici (örneğin, her birkaç dakika) Docker Hub veya diğer kayıtlarda, özellikle anonim kullanıcılar için, katı sınırlardan kaçınmak için, ve makul bir anket aralığı (örneğin, 3600 saniye) kontenjalar içinde kalmak için. Docker Hub'ın ücretsiz tier'i, genellikle orta sayıda konteyner için yeterli olan altı saat boyunca çeker.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Kılavuz konteyner güncellemeleri, yalnızca modern, hızlı tempolu dağıtımlarda ölçeklendirilmeyen bir uygulamadır.Retower ile güncellemeleri otomatikleştirerek, güvenlik, tutarlılık ve verimlilik kazanıyorsunuz - tüm operasyonel yükleri azaltırken, Watchtower, iyi şarj edilebilirlik () resmi site), ve Docker topluluğunda yaygın olarak kabul edilir.Eğer tek bir ev sahibi veya büyük bir filoya karşı büyük bir filo çalıştırın.
[FONT:0) Docker güvenlik en iyi uygulamaları hakkında daha fazla okuma için, check outİLFLT:1]Docker'in resmi güvenlik belgeleri). ve [[Dahiresi|Drams Docker Security Hile Belgesi[FLT: 4)[FLT: 5).