Watchtower ile Docker Konteynerlerini Otomatik Olarak Güncelleştirme

Watchtower ile Docker Konteynerlerini Otomatik Olarak Güncelleştirme

Docker konteynerlerinizi güncel tutmak, özellikle birden fazla konteyner yönetiyorsanız zorluk yaratabilir.

Watchtower’ın devreye girdiği yer burasıdır .

Watchtower, yeni bir görüntü mevcut olduğunda Docker kapsayıcılarınızı otomatik olarak güncelleyen açık kaynaklı bir araçtır ve bu makalede size bunun nasıl kurulacağını göstereceğiz.

Hadi dalalım.

Gözetleme Kulesi nasıl kurulur

Önkoşullar

  • Docker ve Docker Compose’un kurulu olduğu bir sistem. Linux, Windows ve Mac OS’nin tümü Docker ile çalışır ancak biz genellikle Linux kullanmanızı öneririz. En sevdiğimiz dağıtım Debian 12’dir (bu arada, ihtiyacınız varsa VPS barındırma markamız Ekasunucu’dan Docker uygulamalarını çalıştırmak için uygun fiyatlı bir Linux VPS alabilirsiniz ).
  • Docker komutlarına ilişkin temel bilgiler ( Docker ve Docker Compose’un Debian 12’de nasıl kurulacağını açıklayan bir kılavuz yayınladık , bu, Ubuntu’da da yardımcı olacaktır ve diğer Linux dağıtımları yalnızca biraz farklı olacaktır).

Adım 1) Watchtower’ı yükleyin

Öncelikle Watchtower görüntüsünü Docker Hub’dan çekmeniz gerekiyor.

Terminalinizi açın ve aşağıdaki komutu çalıştırın:

docker pull containrrr/watchtower

Adım 2) Watchtower’ı çalıştırın

Watchtower’ı başlatmak için Watchtower görüntüsünü kullanarak bir Docker kapsayıcısı çalıştırmanız gerekir.

Aşağıdaki komut işinizi görecektir:

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower

Bu komut Watchtower’ı ayrı modda çalıştırır ( -d), kapsayıcıyı adlandırır watchtowerve Watchtower’ın Docker arka plan programıyla iletişim kurabilmesi için Docker soketini bağlar.

Adım 3) Watchtower’ı Yapılandırın

Watchtower’ın çeşitli yapılandırma seçenekleri vardır. Ortam değişkenlerini veya komut satırı bağımsız değişkenlerini ileterek davranışını özelleştirebilirsiniz.

Watchtower’ı birkaç ek seçenekle çalıştırmanın bir örneğini burada bulabilirsiniz:

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e WATCHTOWER_CLEANUP=true \
  -e WATCHTOWER_POLL_INTERVAL=300 \
  containrrr/watchtower
  • WATCHTOWER_CLEANUP=trueWatchtower’a güncellemeden sonra eski görselleri kaldırması talimatını verir.
  • WATCHTOWER_POLL_INTERVAL=300Güncellemeleri kontrol etme aralığını her 5 dakikada bir (300 saniye) olarak ayarlar.

Watchtower ayrıca yalnızca belirli kapsayıcıları izleme, Slack’e veya e-postaya bildirim gönderme ve daha fazlası gibi daha gelişmiş yapılandırmaları da destekler. Bu özellikler Watchtower belgelerinde ayrıntılı olarak incelenebilir .

Adım 4) Watchtower’ı Doğrulayın

Watchtower’ın doğru çalıştığından emin olmak için günlüklerini kontrol edebilirsiniz:

docker logs watchtower

Her şey düzgün şekilde ayarlanmışsa Watchtower’ın güncellemeleri kontrol ettiğini ve Docker konteynerlerinizi yönettiğini gösteren günlükleri göreceksiniz.

Bunun gibi:

root@test:~# docker logs watchtower
time="2024-06-02T05:45:43Z" level=info msg="Watchtower 1.7.1"
time="2024-06-02T05:45:43Z" level=info msg="Using no notifications"
time="2024-06-02T05:45:43Z" level=info msg="Checking all containers (except explicitly disabled with label)"
time="2024-06-02T05:45:43Z" level=info msg="Scheduling first run: 2024-06-02 05:50:43 +0000 UTC"
time="2024-06-02T05:45:43Z" level=info msg="Note that the first check will be performed in 4 minutes, 59 seconds"
time="2024-06-02T05:50:44Z" level=info msg="Session done" Failed=0 Scanned=2 Updated=0 notify=no
time="2024-06-02T05:52:24Z" level=info msg="Waiting for running update to be finished..."

Watchtower’ı Docker Compose ile Kullanma

Watchtower’ı tek bir Docker konteyneri ile kullanma sürecini kurduktan sonra, Docker Compose kullanımından bahsedelim .

Docker Compose, tek bir YAML dosyasıyla birden fazla Docker kapsayıcısı tanımlamanıza ve çalıştırmanıza olanak tanır. Bu, çok kapsayıcılı uygulamaların yönetimini kolaylaştırdığından, birçok uygulamayı kendi kendine barındıranlar için özellikle kullanışlıdır.

Docker Compose’un Watchtower ile birlikte kullanılması, hem geliştirme hem de üretim ortamlarının korunmasını çok kolaylaştırır.

Watchtower’ı Docker Compose ile Kurma

Watchtower’ı Docker Compose kurulumunuza entegre etmek için onu dosyanıza bir hizmet olarak ekleyebilirsiniz docker-compose.yml.

İşte örnek bir yapılandırma:

services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"

  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_POLL_INTERVAL=300

Docker Compose kurulumunu çalıştırma

Dosyada tanımlanan hizmetleri başlatmak için docker-compose.ymlaşağıdaki komutu kullanın:

docker compose up -d

Bu hem Nginx web sunucusunu hem de Watchtower konteynerini başlatacaktır.

Tarayıcı aracılığıyla sunucunuzun genel IP adresine gittiğinizde Nginx’in çalıştığını görmelisiniz. Ayrıca aktif kapsayıcıları görmek için de yazabilir ve Watchtower’ın aktif olarak çalıştığını ve belirlenen aralıkta kapsayıcılarınızı güncellemeyi beklediğini doğrulamak için tekrar docker pskullanabilirsiniz .docker logs

Tebrikler! Artık tüm Docker konteynerlerinizi otomatik olarak nasıl güncel tutacağınızı biliyorsunuz.

Çözüm

Docker konteynerlerinizi güncel tutmanın kolay bir yolunu arıyorsanız; Watchtower’dan başkasına bakmayın.

Dağıtım sürecinizi ve iş akışınızı basitleştirme söz konusu olduğunda sistem yöneticisinin veya yazılım mühendisinin en iyi arkadaşıdır – Plex sunucunuzu otomatik olarak güncel tutmak gibi hobi amaçlı kullanım için olsa bile!

Bir deneyin, pişman olmayacağınıza bahse girerim.

Her zaman olduğu gibi, güvenilir barındırma çözümlerine ihtiyacınız varsa xTom, hem büyük ölçekli üretim hem de küçük projeler için üstün kaliteli hizmetler sunar. Kurumsal çözümler için Eka Sunucu’ya veya ölçeklenebilir, kişisel projeler için NVMe VPS serimize göz atın .

Dockering’iniz kutlu olsun ve okuduğunuz için teşekkürler!

Share

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir