Sıfırdan Private Docker Registry Kurulumu ve SSL Ayarı

Kendi Docker Registry'nizi kurmak, şirket içi imajlarınızı güvenli bir şekilde depolamanın en basit yoludur. Docker Hub'a güvenmek istemiyorsanız veya özel imajlarınızı internete açmak tehlikeli görünüyorsa, bu rehber size yardımcı olacak.

İlk olarak Registry konteynerini çalıştırıyoruz. Bunun için bir klasör oluşturup, sertifika ve konfigürasyon dosyalarını orada tutacağız.

1mkdir -p ~/docker-registry/{certs,data,config}
2cd ~/docker-registry

Kendi SSL sertifikasını oluştur. Geliştirme ortamı için self-signed sertifika yeterlidir:

1openssl req -x509 -newkey rsa:4096 -keyout certs/registry.key -out certs/registry.crt -days 365 -nodes -subj "/CN=localhost"

Bu komut 365 gün geçerli bir sertifika dosyası oluşturur. Şimdi Registry konteynerini SSL ile başlatıyoruz:

1docker run -d \
2--name docker-registry \
3-p 5000:5000 \
4-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
5-e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
6-v ~/docker-registry/certs:/certs \
7-v ~/docker-registry/data:/var/lib/registry \
8registry:2

Registry artık çalışıyor. Ancak self-signed sertifika kullandığımız için, Docker daemon'a bu sertifikayı güvenmesi gerektiğini söylemelisin:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1mkdir -p /etc/docker/certs.d/localhost:5000
2cp ~/docker-registry/certs/registry.crt /etc/docker/certs.d/localhost:5000/ca.crt
3sudo systemctl restart docker

Sonra imajını tag'le ve pushla:

1docker tag nginx:latest localhost:5000/my-nginx:latest
2docker push localhost:5000/my-nginx:latest

Beklenen çıktı: "Pushed" mesajı ve başarılı upload.

Kontrol etmek için Registry API'sini sorgula:

1curl https://localhost:5000/v2/_catalog --cacert ~/docker-registry/certs/registry.crt

Çıktı: {"repositories":["my-nginx"]}

Sık yapılan hata: self-signed sertifika için ca.crt dosyasını /etc/docker/certs.d/ klasörüne koymayıp, Docker'ı --insecure-registry bayrağıyla çalıştırmaya çalışmak. Bu güvenlik açığı yaratır; sertifikayı eklemek daha iyidir.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz