Giriş ve Temel Kavramlar
Docker, uygulamaların bağımlılıklarını ve ortamlarını izole eden, taşınabilir konteynerler halinde paketlenmesini sağlayan açık kaynaklı bir platformdur. Python ise, Docker ile otomasyon ve yönetim işlemlerini kolaylaştırmak amacıyla çeşitli API kütüphaneleri sunar. Bu nedenle, Python kullanarak Docker kurulumunu ve temel API işlemlerini gerçekleştirmek, özellikle DevOps ve otomasyon alanında büyük avantaj sağlar.
Python Docker API Kütüphanesinin Kurulumu
Python'da Docker API'yi kullanmak için en yaygın tercih edilen kütüphane
docker-py’dir. Bu kütüphane, Docker Engine API'ne RESTful istekler göndererek konteynerleri, imajları ve ağları yönetmenizi sağlar. Kurulum oldukça basittir:
Kurulum sonrası, temel bir örnek ile Docker daemon’a bağlanabilir ve konteynerleri yönetebilirsiniz.
Docker Daemon Bağlantısı ve Temel İşlemler
Docker API’yi kullanmak için öncelikle Docker daemon’un çalışıyor olması gerekir. Python kodu ile Docker’a bağlanıp, konteynerleri listeleyebilir, yeni konteynerler oluşturabilir veya var olanları durdurabilirsiniz. İşte temel örnekler:
123456789101112131415import docker
client = docker.from_env()
[b]Docker'da çalışan konteynerleri listele[/b]
for container in client.containers.list():
print(container.id, container.status)
[b]Yeni bir konteyner oluştur ve çalıştır[/b]
container = client.containers.run("nginx:latest", detach=True)
print(f"Başlatılan konteyner ID: {container.id}")
[b]Konteyneri durdur[/b]
container.stop()
print(f"Konteyner durduruldu: {container.id}")
Kurulum ve Güvenlik Noktaları
Docker API'yi Python ile kullanırken, Docker daemon’un uygun erişim izinlerine sahip olması gerekir. Genellikle Linux sistemlerde, kullanıcı grubuna eklenmiş olması veya uygun yetkilere sahip olması gerekir. Ayrıca, API'ye uzak bağlantılar yapacaksanız, TLS sertifikaları ve erişim kontrolü gibi güvenlik önlemlerini almanız önemlidir.
Sonuç olarak, Python API kullanımı Docker otomasyonu ve yönetimini büyük ölçüde kolaylaştırır. Bu sayede, sürekli entegrasyon süreçleri veya sistem izleme gibi görevlerde kod tabanlı çözümler geliştirmek mümkündür.