Bu araçta daha sonra ele alınacak bazı uyarılar var, ancak genel olarak, Docker konteyner güncellemeleri sırasında sıfır kesinti süresi elde etmek için genellikle uygulanan manuel süreci otomatikleştirmek için kullanabilirsiniz. Örneğin, güncellenmiş imajla hizmeti mevcut örnek sayısının iki katına ölçeklendirmek, yeni konteynerin hazır olmasını beklemek ve ardından eski konteyneri kaldırmak gibi.
Şimdi uyarılardan bahsedecek olursak, hizmetleri ölçeklendirirken çakışmalardan kaçınmak için “docker-compose.yml” dosyasında “container_name” ve “ports” tanımlı olmamalıdır, bu nedenle bunu halletmek için arka uçta bir tür ters proxy kullanmak en iyisidir.
Ayrıca, dağıtım sırasında konteynerdeki dizin numarasını (örneğin, “web-1” -> “web-2”) artıracaktır. Genel olarak, çoğu Docker imajı için Docker Compose’u sıfır kesinti süresiyle güncelleyebilir, ancak Nextcloud gibi imajlar birkaç saniyeliğine bakım moduna geçer.
SysAdmin işim hakkında kişisel fikrimi söylemem gerekirse, çeşitli gereksinimler nedeniyle bu tür araçları kullanmaktan kaçınır ve sıfır kesinti süresiyle dağıtım için manuel yöntemi tercih ederim; ancak ev laboratuvarımda bunu hiçbir tereddüt yaşamadan özgürce kullanıyorum.
Şimdilik bu kadar konuştuk, Docker Rollout’u Linux sisteminize nasıl kuracağınızı ve Docker Compose servislerini sıfır kesintiyle nasıl güncelleyeceğinizi görelim.
Linux’a Docker Rollout Nasıl Kurulur
Docker Rollout’un kurulum süreci oldukça basit ve anlaşılırdır; tek yapmanız gereken Linux terminalinizi açmak ve aşağıdaki komut dizisini yürütmektir:
# Create a directory for Docker cli plugins.
$ mkdir -p ~/.docker/cli-plugins
# Download the Docker-rollout script to the Docker cli plugins directory.
$ curl https://raw.githubusercontent.com/wowu/docker-rollout/master/docker-rollout -o ~/.docker/cli-plugins/docker-rollout
# Make the script executable.
$ chmod +x ~/.docker/cli-plugins/docker-rolloutİşlem tamamlandığında “docker rollout” komutu erişilebilir hale gelir.
Linux’ta Docker Rollout Nasıl Kullanılır
Docker Compose servislerini sıfır kesintiyle güncellemek için Docker dağıtımını nasıl kullanacağınızı göstermek için aşağıdaki Docker Compose dosyasını kullanacağım:
version: "3.7"
services:
my-web:
image: username/nginx:v1
networks:
- localweb
my-db:
image: username/mysql:v1
networks:
- localweb
networks:
localweb:Docker compose servisinin zaten çalıştığını ve Nginx ve MySQL kapsayıcıları için 2. sürümün mevcut olduğunu varsayarak, bu güncellemeyi uygulamak için öncelikle Docker compose dosyasını düzenleyerek görüntü sürümünü “v2”ye ayarlayın ve ardından aşağıdaki komutu çalıştırın:
# It will update the Nginx container.
$ docker rollout -f docker-compose.yml my-web
# It will update the MySQL container.
$ docker rollout -f docker-compose.yml my-dbBu komut, güncellenmiş imajı kullanarak tüm kapsayıcıları mevcut sayının iki katına ölçeklendirecek, yeni kapsayıcıların hazır olmasını bekleyecek ve ardından eski kapsayıcıları kaldıracaktır. Docker Compose hizmetinin durumu, “watch docker ps” komutu kullanılarak izlenebilir.
Gördüğünüz gibi, bu araç sistem yöneticileri için en zahmetli görevleri basitleştirmeye çalışıyor, ancak özelleştirme eksikliği ve eksik özellikleri nedeniyle profesyonel bir ortam için uygun değil. Bu nedenle işimde bunu görmezden geliyorum, ancak kişisel projelerim için kullanışlı bir araç olabilir.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.