Docker, konteyner tabanlı uygulama geliştirme ve dağıtım süreçlerini kolaylaştıran bir platformdur. Docker imajları, uygulamaların ve bağımlılıklarının taşınabilir bir biçimde saklanmasını sağlar. Ancak, bir proje üzerinde çalışırken, genellikle genel Docker Hub yerine özel bir Docker Registry kullanmak tercih edilir. Özel Docker Registry oluşturmak, güvenlik ve erişim kontrolü açısından avantajlar sunar. Aşağıda, özel bir Docker Registry’ye imaj push etme süreci adım adım açıklanmaktadır.
Özel Docker Registry Nedir?
Özel Docker Registry, kullanıcıların kendilerine ait Docker imajlarını depolamak için kullandıkları bir sunucudur. Genel Docker Hub, herkesin erişebileceği bir kaynaktır, ancak özel bir registry, sadece belirli kullanıcılar tarafından erişilebilen imajlar sunar. Bu, gizli uygulama bileşenleri veya kurum içi geliştirme süreçleri için önemlidir. Özel registry, kullanıcıların özel bilgilerini korumasına ve yönetmesine olanak tanır.
Docker Registry Kurulumu
Özel Docker Registry kurulumuna başlamak için, öncelikle bir Docker sunucusunun olması gerekmektedir. Docker Registry’yi çalıştırmak için sistemde Docker kurulmuş olmalıdır. Aşağıdaki komut ile standart bir Docker Registry kurulumu yapılabilir.
“`bash
docker run -d -p 5000:5000 –name registry registry:2
“`
Bu komut, Docker Registry’nin resmi imajını indirir ve 5000 numaralı portu kullanarak bir konteyneri başlatır. Bu adım tamamlandığında, kullanıcılar artık imajları bu registry’e push edebilir ve pull edebilir.
Docker İmajının Hazırlanması
Öncelikle, push edilmek istenen Docker imajının oluşturulması gerekmektedir. Bir Dockerfile kullanarak yeni bir imaj oluşturma süreci aşağıdaki gibidir.
Dockerfile örneği:
“`dockerfile
FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD [“python”, “app.py”]
“`
Dockerfile oluşturulduktan sonra, bu dosya kullanılarak Docker imajı oluşturulabilir. İmajın oluşturulması için aşağıdaki komut kullanılacaktır.
“`bash
docker build -t myapp:latest .
“`
Bu komut, “myapp” adlı bir imaj oluşturur ve “latest” etiketini ekler.
Özel Registry’ye İmaj Push Etme
Özel Docker Registry’ye imaj push etme işlemi için ilk olarak kullanıcının imajı registry’nin adresine etiketlemesi gerekmektedir. Eğer Docker Registry yerel olarak çalışıyorsa ve belirtilen port 5000 ise, imaj şu şekilde etiketlenir:
“`bash
docker tag myapp:latest localhost:5000/myapp:latest
“`
Etiketleme işleminden sonra, oluşturulan imaj özel registry’ye push edilmelidir. Aşağıdaki komut ile imaj push edilebilir:
“`bash
docker push localhost:5000/myapp:latest
“`
Bu komut çalıştırıldığında, Docker belirli bir süre içerisinde imajın registry’ye yüklenmesini gerçekleştirecektir. Yükleme tamamlandığında, özel registry’de imajın varlığı doğrulanmalıdır.
İmajın Doğrulanması
Push işleminin ardından, özel registry’ye yüklenen imajların varlığı kontrol edilebilir. Bu işlem için aşağıdaki komut kullanılabilir:
“`bash
curl http://localhost:5000/v2/myapp/tags/list
“`
Bu komut, “myapp” imajının etiketlerini sorgular ve başarıyla yüklenip yüklenmediğini gösterir.
Güvenlik ve Erişim Kontrolü
Özel Docker Registry kullanırken, güvenlik konuları göz önünde bulundurulmalıdır. Registry, HTTP üzerinden değil, HTTPS üzerinden çalışacak şekilde yapılandırılmalıdır. Ayrıca, kullanıcıların erişim hakları belirlenmelidir. Bu aşama, kullanıcıların yetkisiz erişimini önlemek amacıyla önemlidir. Özel registry’yi yapılandırmak için bir reverse proxy kullanmak, SSL sertifikası eklemek ve temel kimlik doğrulaması yapmak düşünülebilir.
Özet
Özel Docker Registry, Docker imajlarını güvenli bir şekilde saklama ve paylaşma imkanı sunar. İmajların oluşturulması, etiketlenmesi ve özel registry’ye push edilmesi gibi adımlar açık bir şekilde tanımlanmıştır. Bu süreç, yazılım geliştirme ve dağıtım sürecinde önemli bir rol oynamaktadır. Kullanıcıların ihtiyaçlarına uygun olarak özel registry yapılandırıldığında, güvenli ve etkili bir sistem oluşturulabilir.


