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-registryKendi 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:2Registry artık çalışıyor. Ancak self-signed sertifika kullandığımız için, Docker daemon'a bu sertifikayı güvenmesi gerektiğini söylemelisin:
1mkdir -p /etc/docker/certs.d/localhost:50002cp ~/docker-registry/certs/registry.crt /etc/docker/certs.d/localhost:5000/ca.crt3sudo systemctl restart dockerSonra imajını tag'le ve pushla:
1docker tag nginx:latest localhost:5000/my-nginx:latest2docker push localhost:5000/my-nginx:latestBeklenen çı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.
0 yorum