{"id":38087,"date":"2026-01-23T03:41:02","date_gmt":"2026-01-23T00:41:02","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38087"},"modified":"2026-01-23T03:41:02","modified_gmt":"2026-01-23T00:41:02","slug":"dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/","title":{"rendered":"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi<\/h2>\n<h2>DijitalOcean Container Registry (DOCR) Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde konteyner teknolojileri, uygulamalar\u0131n ta\u015f\u0131nabilirli\u011fi, \u00f6l\u00e7eklenebilirli\u011fi ve tutarl\u0131l\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan vazge\u00e7ilmez bir rol oynamaktad\u0131r. Docker gibi konteyner platformlar\u0131, uygulamalar\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131yla birlikte izole edilmi\u015f ortamlarda \u00e7al\u0131\u015ft\u0131rmay\u0131 m\u00fcmk\u00fcn k\u0131lar. Ancak bu konteyner imajlar\u0131n\u0131n depolanmas\u0131, s\u00fcr\u00fcm kontrol\u00fc ve farkl\u0131 ortamlara g\u00fcvenli bir \u015fekilde da\u011f\u0131t\u0131lmas\u0131 i\u00e7in bir kay\u0131t defteri (registry) hizmetine ihtiya\u00e7 duyulur. \u0130\u015fte tam bu noktada DijitalOcean Container Registry (DOCR) devreye girer.<\/p>\n<p>DOCR, geli\u015ftiricilerin Docker imajlar\u0131n\u0131 depolayabilece\u011fi, y\u00f6netebilece\u011fi ve da\u011f\u0131tabilece\u011fi, tam olarak y\u00f6netilen, \u00f6zel bir Docker kay\u0131t defteri hizmetidir. DigitalOcean ekosistemiyle sorunsuz bir \u015fekilde entegre \u00e7al\u0131\u015fan DOCR, \u00f6zellikle DigitalOcean Droplet&#8217;leri, Kubernetes k\u00fcmeleri (DOKS) veya App Platform gibi di\u011fer DigitalOcean \u00fcr\u00fcnlerini kullanan projeler i\u00e7in ideal bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<p><strong>Neden DOCR Kullanmal\u0131s\u0131n\u0131z?<\/strong><\/p>\n<p>*   <strong>Entegrasyon Kolayl\u0131\u011f\u0131:<\/strong> DigitalOcean&#8217;\u0131n di\u011fer hizmetleriyle derinlemesine entegrasyon sunar. \u00d6zellikle DigitalOcean Kubernetes (DOKS) ile kullan\u0131ld\u0131\u011f\u0131nda, kimlik do\u011frulama ve imaj \u00e7ekme s\u00fcre\u00e7leri basitle\u015fir.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> \u0130majlar\u0131n\u0131z DigitalOcean&#8217;\u0131n g\u00fcvenli altyap\u0131s\u0131nda depolan\u0131r. Eri\u015fim kontrol\u00fc mekanizmalar\u0131 sayesinde yaln\u0131zca yetkili kullan\u0131c\u0131lar veya servisler imajlar\u0131n\u0131za eri\u015febilir. Ayr\u0131ca, DigitalOcean&#8217;\u0131n genel g\u00fcvenlik standartlar\u0131ndan faydalan\u0131rs\u0131n\u0131z.<br \/>\n*   <strong>Performans ve G\u00fcvenilirlik:<\/strong> DigitalOcean&#8217;\u0131n global veri merkezleri arac\u0131l\u0131\u011f\u0131yla y\u00fcksek performansl\u0131 imaj \u00e7ekme ve g\u00f6nderme i\u015flemleri sunar. Bu, da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinizin daha h\u0131zl\u0131 ve g\u00fcvenilir olmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik:<\/strong> \u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re otomatik olarak \u00f6l\u00e7eklenir, b\u00f6ylece depolama alan\u0131 veya bant geni\u015fli\u011fi konusunda endi\u015felenmenize gerek kalmaz.<br \/>\n*   <strong>Maliyet Etkinli\u011fi:<\/strong> Genellikle \u00f6ng\u00f6r\u00fclebilir ve uygun fiyatland\u0131rma modelleri sunar. Kullan\u0131m\u0131n\u0131za g\u00f6re \u00f6deme yaparak gereksiz maliyetlerden ka\u00e7\u0131nabilirsiniz.<br \/>\n*   <strong>Basit Y\u00f6netim:<\/strong> Tamamen y\u00f6netilen bir hizmet oldu\u011fu i\u00e7in altyap\u0131 y\u00f6netimi y\u00fck\u00fcn\u00fc \u00fczerinizden al\u0131r. Geli\u015ftiriciler imaj y\u00f6netimine odaklanabilir.<br \/>\n*   <strong>S\u00fcr\u00fcm Kontrol\u00fc:<\/strong> \u0130majlar\u0131n\u0131z\u0131n farkl\u0131 s\u00fcr\u00fcmlerini etiketleyerek kolayca y\u00f6netmenizi ve gerekti\u011finde belirli bir s\u00fcr\u00fcme geri d\u00f6nmenizi sa\u011flar.<\/p>\n<p><strong>Kullan\u0131m Senaryolar\u0131:<\/strong><\/p>\n<p>*   <strong>S\u00fcrekli Entegrasyon\/S\u00fcrekli Da\u011f\u0131t\u0131m (CI\/CD):<\/strong> CI\/CD i\u015flem hatlar\u0131n\u0131z\u0131n bir par\u00e7as\u0131 olarak otomatik olarak yeni imajlar\u0131 derleyip DOCR&#8217;a g\u00f6nderebilir ve ard\u0131ndan da\u011f\u0131t\u0131m ortamlar\u0131n\u0131za \u00e7ekebilirsiniz.<br \/>\n*   <strong>Mikroservis Mimarileri:<\/strong> Mikroservis tabanl\u0131 uygulamalar\u0131n\u0131z\u0131n her bir servisi i\u00e7in ayr\u0131 Docker imajlar\u0131n\u0131 DOCR&#8217;da depolayabilir ve y\u00f6netebilirsiniz.<br \/>\n*   <strong>\u00c7oklu Ortam Da\u011f\u0131t\u0131mlar\u0131:<\/strong> Geli\u015ftirme, test ve \u00fcretim gibi farkl\u0131 ortamlar i\u00e7in ayn\u0131 imajlar\u0131 DOCR&#8217;dan \u00e7ekerek tutarl\u0131 da\u011f\u0131t\u0131mlar sa\u011flayabilirsiniz.<br \/>\n*   <strong>Ekip \u0130\u015fbirli\u011fi:<\/strong> Geli\u015ftirme ekiplerinin ortak bir imaj deposu \u00fczerinden i\u015fbirli\u011fi yapmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Bu rehberde, DigitalOcean Container Registry&#8217;yi ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, Docker imajlar\u0131n\u0131z\u0131 nas\u0131l g\u00f6nderece\u011finizi ve y\u00f6netece\u011finizi detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h2>\u00d6n Ko\u015fullar: Ba\u015flamadan \u00d6nce \u0130htiya\u00e7 Duyulanlar<\/h2>\n<p>DigitalOcean Container Registry&#8217;yi ba\u015far\u0131l\u0131 bir \u015fekilde kurmak ve kullanmak i\u00e7in baz\u0131 temel ara\u00e7lara ve bilgilere sahip olman\u0131z gerekmektedir. Bu b\u00f6l\u00fcmde, gerekli \u00f6n ko\u015fullar\u0131 detayland\u0131raca\u011f\u0131z.<\/p>\n<p>*   <strong>DigitalOcean Hesab\u0131:<\/strong> DOCR, DigitalOcean&#8217;\u0131n bir hizmetidir. Dolay\u0131s\u0131yla, bir DigitalOcean hesab\u0131na sahip olman\u0131z ve bu hesaba giri\u015f yapabilmeniz gerekmektedir. E\u011fer hen\u00fcz bir hesab\u0131n\u0131z yoksa, DigitalOcean web sitesi \u00fczerinden kolayca olu\u015fturabilirsiniz.<br \/>\n*   <strong><code>doctl<\/code> CLI Kurulumu:<\/strong> <code>doctl<\/code>, DigitalOcean&#8217;\u0131n resmi komut sat\u0131r\u0131 aray\u00fcz\u00fc (CLI) arac\u0131d\u0131r. DOCR dahil olmak \u00fczere DigitalOcean \u00fczerindeki t\u00fcm kaynaklar\u0131 programatik olarak y\u00f6netmek i\u00e7in kullan\u0131l\u0131r. <code>doctl<\/code>&#8216;u yerel makinenize kurman\u0131z ve DigitalOcean hesab\u0131n\u0131zla kimlik do\u011frulamas\u0131 yapman\u0131z gerekecektir.<\/p>\n<p>    *   <strong>Kurulum Talimatlar\u0131 (\u00d6rnekler):<\/strong><br \/>\n        *   <strong>macOS (Homebrew ile):<\/strong><\/p>\n<pre><code class=\"language-bash\">brew install doctl<\/code><\/pre>\n<p>        *   <strong>Linux (apt ile):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo snap install doctl --classic\n            # Veya manuel kurulum i\u00e7in:\n            # wget https:\/\/github.com\/digitalocean\/doctl\/releases\/download\/v1.x.x\/doctl-1.x.x-linux-amd64.tar.gz\n            # tar xf doctl-1.x.x-linux-amd64.tar.gz\n            # sudo mv doctl \/usr\/local\/bin<\/code><\/pre>\n<p>        *   <strong>Windows (Chocolatey ile):<\/strong><\/p>\n<pre><code class=\"language-bash\">choco install doctl<\/code><\/pre>\n<p>    *   <strong>Kimlik Do\u011frulama:<\/strong> <code>doctl<\/code>&#8216;u kurduktan sonra, hesab\u0131n\u0131zla kimlik do\u011frulamas\u0131 yapman\u0131z gerekir. Bu i\u015flem, size \u00f6zel bir ki\u015fisel eri\u015fim belirteci (Personal Access Token) olu\u015fturmay\u0131 ve <code>doctl<\/code>&#8216;a tan\u0131tmay\u0131 i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\">doctl auth init<\/code><\/pre>\n<p>        Bu komut sizi DigitalOcean kontrol paneline y\u00f6nlendirecek ve bir belirte\u00e7 olu\u015fturup CLI&#8217;a yap\u0131\u015ft\u0131rman\u0131z\u0131 isteyecektir. Alternatif olarak, do\u011frudan kontrol panelinden bir API belirteci olu\u015fturup <code>doctl auth init<\/code> komutuna manuel olarak sa\u011flayabilirsiniz.<\/p>\n<p>*   <strong>Docker Kurulumu:<\/strong> Konteyner imajlar\u0131 olu\u015fturmak, etiketlemek ve kay\u0131t defterine g\u00f6ndermek i\u00e7in yerel makinenizde Docker Engine&#8217;in kurulu olmas\u0131 gerekir. Docker Desktop (Windows\/macOS i\u00e7in) veya Docker Engine (Linux i\u00e7in) kurabilirsiniz.<br \/>\n    *   <strong>Kurulum Talimatlar\u0131:<\/strong> Docker&#8217;\u0131n resmi web sitesindeki dok\u00fcmantasyonu takip ederek i\u015fletim sisteminize uygun kurulumu ger\u00e7ekle\u015ftirebilirsiniz: [https:\/\/docs.docker.com\/get-docker\/](https:\/\/docs.docker.com\/get-docker\/)<br \/>\n    *   Kurulumu do\u011frulama:<\/p>\n<pre><code class=\"language-bash\">docker --version\n        docker run hello-world<\/code><\/pre>\n<p>*   <strong>Temel Docker Bilgisi:<\/strong> <code>Dockerfile<\/code> yazma, Docker imajlar\u0131n\u0131 derleme (<code>docker build<\/code>), etiketleme (<code>docker tag<\/code>) ve g\u00f6nderme (<code>docker push<\/code>) gibi temel Docker komutlar\u0131na ve kavramlar\u0131na a\u015fina olman\u0131z bu rehberi daha verimli kullanman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<p>Bu \u00f6n ko\u015fullar tamamland\u0131\u011f\u0131nda, DigitalOcean Container Registry&#8217;nizi olu\u015fturmaya ve kullanmaya haz\u0131rs\u0131n\u0131z demektir.<\/p>\n<h2>DigitalOcean Container Registry Olu\u015fturma: Ad\u0131m Ad\u0131m Kurulum<\/h2>\n<p>DigitalOcean Container Registry (DOCR) olu\u015fturman\u0131n iki ana yolu vard\u0131r: DigitalOcean kontrol paneli \u00fczerinden veya <code>doctl<\/code> CLI (komut sat\u0131r\u0131 aray\u00fcz\u00fc) \u00fczerinden. Her iki y\u00f6ntemi de ad\u0131m ad\u0131m inceleyelim.<\/p>\n<h3>Kontrol Paneli \u00dczerinden Olu\u015fturma<\/h3>\n<p>DigitalOcean kontrol paneli, kullan\u0131c\u0131 dostu aray\u00fcz\u00fc ile DOCR olu\u015fturman\u0131n en kolay yoludur.<\/p>\n<p>1.  <strong>DigitalOcean Hesab\u0131n\u0131za Giri\u015f Yap\u0131n:<\/strong> Taray\u0131c\u0131n\u0131zdan DigitalOcean kontrol paneline (cloud.digitalocean.com) gidin ve hesab\u0131n\u0131za giri\u015f yap\u0131n.<br \/>\n2.  <strong>Container Registry Sayfas\u0131na Gidin:<\/strong> Sol gezinme men\u00fcs\u00fcnde &#8220;Containers&#8221; veya &#8220;Container Registry&#8221; se\u00e7ene\u011fini bulun ve t\u0131klay\u0131n. E\u011fer ilk kez kullan\u0131yorsan\u0131z, sizi &#8220;Create Container Registry&#8221; sayfas\u0131na y\u00f6nlendirecektir.<br \/>\n3.  <strong>Registry Olu\u015fturma \u0130\u015flemini Ba\u015flat\u0131n:<\/strong> &#8220;Create Registry&#8221; veya &#8220;Get Started&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n4.  <strong>Registry Ad\u0131n\u0131 Belirleyin:<\/strong> Registry&#8217;niz i\u00e7in benzersiz bir ad girmeniz istenecektir. Bu ad, imajlar\u0131n\u0131z\u0131n tam yolunun bir par\u00e7as\u0131 olacakt\u0131r (\u00f6rne\u011fin, <code>registry.digitalocean.com\/your-registry-name\/image-name<\/code>). Ad, k\u00fc\u00e7\u00fck harflerden ve tirelerden olu\u015fmal\u0131, benzersiz olmal\u0131 ve 63 karakteri ge\u00e7memelidir.<br \/>\n5.  <strong>B\u00f6lge (Region) Se\u00e7in:<\/strong> Registry&#8217;nizin fiziksel olarak nerede bar\u0131nd\u0131r\u0131laca\u011f\u0131n\u0131 se\u00e7meniz gerekir. Uygulamalar\u0131n\u0131z\u0131n veya hizmetlerinizin bulundu\u011fu veri merkezine yak\u0131n bir b\u00f6lge se\u00e7mek, imaj \u00e7ekme ve g\u00f6nderme i\u015flemlerinde gecikmeyi azaltacakt\u0131r. \u00d6rne\u011fin, \u0130stanbul&#8217;dan ba\u011flan\u0131yorsan\u0131z Frankfurt (fra1) veya Amsterdam (ams3) gibi b\u00f6lgeler tercih edilebilir.<br \/>\n6.  <strong>Plan Se\u00e7imi:<\/strong> DigitalOcean, DOCR i\u00e7in farkl\u0131 planlar sunabilir. Genellikle, belirli bir depolama alan\u0131 ve bant geni\u015fli\u011fi i\u00e7eren bir &#8220;Starter&#8221; veya &#8220;Professional&#8221; plan\u0131 se\u00e7ene\u011fi bulunur. \u0130htiya\u00e7lar\u0131n\u0131za uygun olan\u0131 se\u00e7in. Ba\u015flang\u0131\u00e7ta \u00fccretsiz bir katman (free tier) olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n7.  <strong>Registry&#8217;yi Olu\u015fturun:<\/strong> T\u00fcm bilgileri girdikten sonra &#8220;Create Registry&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n. DigitalOcean, registry&#8217;nizi birka\u00e7 dakika i\u00e7inde olu\u015fturacakt\u0131r.<\/p>\n<p>Registry olu\u015fturulduktan sonra, kontrol panelinde registry&#8217;nizin genel bak\u0131\u015f sayfas\u0131n\u0131 g\u00f6rebilirsiniz. Burada depolama kullan\u0131m\u0131n\u0131z\u0131, depolanan imajlar\u0131 ve di\u011fer detaylar\u0131 takip edebilirsiniz.<\/p>\n<h3><code>doctl<\/code> CLI \u00dczerinden Olu\u015fturma<\/h3>\n<p>Komut sat\u0131r\u0131 aray\u00fcz\u00fcn\u00fc tercih edenler veya otomasyon senaryolar\u0131 i\u00e7in <code>doctl<\/code> CLI \u00fczerinden registry olu\u015fturmak daha pratik olabilir.<\/p>\n<p>1.  <strong><code>doctl<\/code> Kimlik Do\u011frulamas\u0131n\u0131 Yap\u0131n:<\/strong> \u00d6n ko\u015fullarda belirtildi\u011fi gibi, <code>doctl<\/code>&#8216;un DigitalOcean hesab\u0131n\u0131zla kimlik do\u011frulamas\u0131 yap\u0131ld\u0131\u011f\u0131ndan emin olun:<\/p>\n<pre><code class=\"language-bash\">doctl auth init<\/code><\/pre>\n<p>2.  <strong>Mevcut B\u00f6lgeleri Kontrol Edin (\u0130ste\u011fe Ba\u011fl\u0131):<\/strong> Registry&#8217;nizi olu\u015fturabilece\u011finiz mevcut b\u00f6lgeleri g\u00f6rmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">doctl regions list<\/code><\/pre>\n<p>    Bu, bir b\u00f6lge kodu se\u00e7erken size yard\u0131mc\u0131 olacakt\u0131r (\u00f6rne\u011fin, <code>nyc3<\/code>, <code>fra1<\/code>).<br \/>\n3.  <strong>Registry Olu\u015fturma Komutunu \u00c7al\u0131\u015ft\u0131r\u0131n:<\/strong> Registry&#8217;nizi olu\u015fturmak i\u00e7in <code>doctl registry create<\/code> komutunu kullan\u0131n. <code>name<\/code> ve <code>region<\/code> parametrelerini sa\u011flaman\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">doctl registry create <registry-adi> --region <bolge-kodu><\/code><\/pre>\n<p>    *   <code><registry-adi><\/code>: Registry&#8217;niz i\u00e7in istedi\u011finiz benzersiz ad.<br \/>\n    *   <code><bolge-kodu><\/code>: Registry&#8217;nizin olu\u015fturulaca\u011f\u0131 veri merkezi b\u00f6lgesi (\u00f6rne\u011fin, <code>fra1<\/code>).<\/p>\n<p>    <strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl registry create my-first-registry --region fra1<\/code><\/pre>\n<p>    Komut ba\u015far\u0131l\u0131 oldu\u011funda, olu\u015fturulan registry hakk\u0131nda detayl\u0131 JSON \u00e7\u0131kt\u0131s\u0131 al\u0131rs\u0131n\u0131z. Bu \u00e7\u0131kt\u0131da registry&#8217;nin ad\u0131, b\u00f6lgesi, durumu ve di\u011fer bilgileri yer al\u0131r.<\/p>\n<p>4.  <strong>Olu\u015fturulan Registry&#8217;yi Do\u011frulay\u0131n:<\/strong> Registry&#8217;nizin ba\u015far\u0131yla olu\u015fturuldu\u011funu do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">doctl registry get<\/code><\/pre>\n<p>    Bu komut, DigitalOcean hesab\u0131n\u0131zdaki t\u00fcm registry&#8217;leri listeler. E\u011fer tek bir registry&#8217;niz varsa, do\u011frudan o registry&#8217;nin bilgilerini g\u00f6sterecektir.<\/p>\n<p>Art\u0131k DigitalOcean Container Registry&#8217;nizi olu\u015fturdunuz. Bir sonraki ad\u0131m, Docker imajlar\u0131n\u0131z\u0131 bu registry&#8217;ye nas\u0131l g\u00f6nderece\u011finizi \u00f6\u011frenmek olacakt\u0131r.<\/p>\n<h2>Docker \u0130majlar\u0131n\u0131 DOCR&#8217;a G\u00f6nderme (Push): \u0130\u015f Ak\u0131\u015f\u0131<\/h2>\n<p>DigitalOcean Container Registry&#8217;nizi olu\u015fturduktan sonraki en \u00f6nemli ad\u0131m, yerel olarak olu\u015fturdu\u011funuz Docker imajlar\u0131n\u0131 bu kay\u0131t defterine g\u00f6ndermektir. Bu s\u00fcre\u00e7, kimlik do\u011frulama, imaj\u0131 etiketleme ve son olarak g\u00f6nderme ad\u0131mlar\u0131n\u0131 i\u00e7erir.<\/p>\n<h3>DOCR&#8217;a Kimlik Do\u011frulama<\/h3>\n<p>Docker imajlar\u0131n\u0131 DigitalOcean Container Registry&#8217;ye g\u00f6nderebilmek i\u00e7in \u00f6ncelikle Docker istemcinizin DOCR ile kimlik do\u011frulamas\u0131 yapmas\u0131 gerekir. DigitalOcean, bu i\u015flemi <code>doctl<\/code> CLI ile entegre bir \u015fekilde kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>1.  <strong><code>doctl<\/code> ile Docker Giri\u015fi Yap\u0131n:<\/strong><br \/>\n    Bu, en basit ve \u00f6nerilen y\u00f6ntemdir. <code>doctl<\/code> komutu, Docker istemcinizi otomatik olarak DOCR&#8217;a giri\u015f yapacak \u015fekilde yap\u0131land\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">doctl registry login<\/code><\/pre>\n<p>    Bu komut, <code>docker login registry.digitalocean.com<\/code> komutunu arka planda \u00e7al\u0131\u015ft\u0131r\u0131r ve DigitalOcean hesab\u0131n\u0131zla ili\u015fkili ge\u00e7ici bir belirte\u00e7 kullanarak kimlik do\u011frulamas\u0131n\u0131 yapar. Ba\u015far\u0131l\u0131 olursa, &#8220;Login Succeeded&#8221; mesaj\u0131n\u0131 g\u00f6r\u00fcrs\u00fcn\u00fcz. Bu belirte\u00e7lerin belirli bir \u00f6mr\u00fc vard\u0131r, bu y\u00fczden belirli aral\u0131klarla bu komutu \u00e7al\u0131\u015ft\u0131rman\u0131z gerekebilir.<\/p>\n<p>    *   <strong>Alternatif (Manuel) Kimlik Do\u011frulama:<\/strong><br \/>\n        E\u011fer <code>doctl<\/code> kullan\u0131lam\u0131yorsa veya farkl\u0131 bir senaryo i\u00e7in manuel giri\u015f yapmak istiyorsan\u0131z, bir DigitalOcean API belirteci olu\u015fturup bunu Docker&#8217;a sa\u011flayabilirsiniz. Ancak <code>doctl registry login<\/code> \u00e7o\u011fu durum i\u00e7in tercih edilen y\u00f6ntemdir.<\/p>\n<pre><code class=\"language-bash\"># Bu y\u00f6ntem genellikle \u00f6nerilmez, ancak bir alternatif olarak bilinmelidir.\n        # DigitalOcean kontrol panelinden bir Personal Access Token (PAT) olu\u015fturun.\n        # docker login registry.digitalocean.com\n        # Kullan\u0131c\u0131 ad\u0131 olarak DigitalOcean API token'\u0131n\u0131z\u0131 girin (veya DigitalOcean'\u0131n belirtti\u011fi kullan\u0131c\u0131 ad\u0131n\u0131).\n        # \u015eifre olarak DigitalOcean API token'\u0131n\u0131z\u0131 girin.<\/code><\/pre>\n<p>        <code>doctl registry login<\/code> komutu, Docker&#8217;\u0131n kimlik bilgilerini g\u00fcvenli bir \u015fekilde y\u00f6netmesini sa\u011flad\u0131\u011f\u0131 i\u00e7in daha g\u00fcvenlidir.<\/p>\n<h3>Docker \u0130maj\u0131 Olu\u015fturma veya Mevcut \u0130maj\u0131 Etiketleme<\/h3>\n<p>DOCR&#8217;a g\u00f6nderece\u011finiz imaj\u0131n do\u011fru formatta etiketlenmi\u015f olmas\u0131 gerekir. Etiket format\u0131 <code>registry.digitalocean.com\/<your-registry-name>\/<image-name>:<tag><\/code> \u015feklindedir.<\/p>\n<p>1.  <strong>Bir Docker \u0130maj\u0131 Olu\u015fturun (E\u011fer Mevcut De\u011filse):<\/strong><br \/>\n    \u00d6rnek bir <code>Dockerfile<\/code> kullanarak bir imaj olu\u015ftural\u0131m.<br \/>\n    <code>Dockerfile<\/code> i\u00e7eri\u011fi:<\/p>\n<pre><code class=\"language-dockerfile\"># Dockerfile\n    FROM alpine:latest\n    CMD [\"echo\", \"Merhaba, DigitalOcean Container Registry!\"]<\/code><\/pre>\n<p>    Bu <code>Dockerfile<\/code>&#8216;\u0131 <code>my-app<\/code> ad\u0131nda bir dizine kaydedin ve o dizinde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">docker build -t my-app:latest .<\/code><\/pre>\n<p>    Bu komut, <code>my-app<\/code> ad\u0131nda ve <code>latest<\/code> etiketli yerel bir Docker imaj\u0131 olu\u015fturur.<\/p>\n<p>2.  <strong>\u0130maj\u0131 DOCR \u0130\u00e7in Etiketleyin:<\/strong><br \/>\n    Olu\u015fturdu\u011funuz veya mevcut olan imaj\u0131, DOCR&#8217;a g\u00f6nderebilmek i\u00e7in do\u011fru adland\u0131rma format\u0131yla etiketlemeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">docker tag <yerel-imaj-adi>:<yerel-etiket> registry.digitalocean.com\/<registry-adi>\/<imaj-adi>:<etiket><\/code><\/pre>\n<p>    *   <code><yerel-imaj-adi><\/code>: Yerel makinenizdeki imaj\u0131n ad\u0131 (\u00f6rne\u011fin, <code>my-app<\/code>).<br \/>\n    *   <code><yerel-etiket><\/code>: Yerel imaj\u0131n etiketi (\u00f6rne\u011fin, <code>latest<\/code>).<br \/>\n    *   <code><registry-adi><\/code>: DigitalOcean Container Registry&#8217;nizin ad\u0131 (\u00f6rne\u011fin, <code>my-first-registry<\/code>).<br \/>\n    *   <code><imaj-adi><\/code>: DOCR&#8217;da g\u00f6r\u00fcnecek imaj\u0131n ad\u0131 (genellikle yerel imaj ad\u0131yla ayn\u0131d\u0131r, \u00f6rne\u011fin, <code>my-app<\/code>).<br \/>\n    *   <code><etiket><\/code>: DOCR&#8217;daki imaj\u0131n etiketi (\u00f6rne\u011fin, <code>1.0<\/code>, <code>latest<\/code>, <code>dev<\/code>).<\/p>\n<p>    <strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-bash\">docker tag my-app:latest registry.digitalocean.com\/my-first-registry\/my-app:1.0\n    docker tag my-app:latest registry.digitalocean.com\/my-first-registry\/my-app:latest<\/code><\/pre>\n<p>    Bu komutlar, <code>my-app:latest<\/code> imaj\u0131n\u0131n iki farkl\u0131 etiketle DOCR&#8217;a g\u00f6nderilmek \u00fczere haz\u0131rlanmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>\u0130maj\u0131 DOCR&#8217;a G\u00f6nderme (Push)<\/h3>\n<p>\u0130maj\u0131n\u0131z\u0131 do\u011fru \u015fekilde etiketledikten ve kimlik do\u011frulamas\u0131n\u0131 yapt\u0131ktan sonra, <code>docker push<\/code> komutuyla DOCR&#8217;a g\u00f6nderebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">docker push registry.digitalocean.com\/<registry-adi>\/<imaj-adi>:<etiket><\/code><\/pre>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-bash\">docker push registry.digitalocean.com\/my-first-registry\/my-app:1.0\ndocker push registry.digitalocean.com\/my-first-registry\/my-app:latest<\/code><\/pre>\n<p>\u0130maj\u0131n boyutu ve internet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ba\u011fl\u0131 olarak bu i\u015flem biraz zaman alabilir. Ba\u015far\u0131l\u0131 bir \u015fekilde tamamland\u0131\u011f\u0131nda, terminalinizde &#8220;Pushed&#8221; veya benzeri bir ba\u015far\u0131 mesaj\u0131 g\u00f6receksiniz.<\/p>\n<p><strong>Do\u011frulama:<\/strong><br \/>\n\u0130maj\u0131n\u0131z\u0131n DOCR&#8217;a ba\u015far\u0131yla g\u00f6nderildi\u011fini do\u011frulamak i\u00e7in DigitalOcean kontrol panelinize gidebilir veya <code>doctl<\/code> CLI&#8217;y\u0131 kullanabilirsiniz:<br \/>\n*   <strong>Kontrol Paneli:<\/strong> Container Registry b\u00f6l\u00fcm\u00fcne gidin, registry&#8217;nizi se\u00e7in ve &#8220;Images&#8221; sekmesinde g\u00f6nderdi\u011finiz imaj\u0131 ve etiketlerini g\u00f6rmelisiniz.<br \/>\n*   <strong><code>doctl<\/code> CLI:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl registry repository list\n    doctl registry repository get <imaj-adi><\/code><\/pre>\n<p>    <strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl registry repository list\n    doctl registry repository get my-app<\/code><\/pre>\n<p>    Bu komutlar, registry&#8217;nizdeki depolar\u0131 ve <code>my-app<\/code> deposundaki imaj etiketlerini listeleyecektir.<\/p>\n<p>Art\u0131k Docker imajlar\u0131n\u0131z DigitalOcean Container Registry&#8217;de g\u00fcvenli bir \u015fekilde depolanm\u0131\u015f durumda. Bir sonraki ad\u0131mda, bu imajlar\u0131 nas\u0131l \u00e7ekece\u011finizi ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 inceleyece\u011fiz.<\/p>\n<h2>DOCR&#8217;dan Docker \u0130majlar\u0131n\u0131 \u00c7ekme (Pull): Uygulama ve Da\u011f\u0131t\u0131m<\/h2>\n<p>DigitalOcean Container Registry&#8217;ye (DOCR) g\u00f6nderdi\u011finiz Docker imajlar\u0131n\u0131, DigitalOcean Droplet&#8217;lerinizde, Kubernetes k\u00fcmelerinizde (DOKS) veya herhangi bir Docker y\u00fckl\u00fc sunucuda kullanmak i\u00e7in bu imajlar\u0131 \u00e7ekmeniz (pull) gerekir.<\/p>\n<h3>Kimlik Do\u011frulama<\/h3>\n<p>\u0130majlar\u0131 DOCR&#8217;dan \u00e7ekebilmek i\u00e7in, imaj\u0131 \u00e7ekece\u011finiz ortam\u0131n (sunucu, Droplet, Kubernetes d\u00fc\u011f\u00fcm\u00fc vb.) DOCR ile kimlik do\u011frulamas\u0131 yapmas\u0131 gerekir. Bu, imaj g\u00f6nderme i\u015flemindeki kimlik do\u011frulamas\u0131na benzerdir.<\/p>\n<p>1.  <strong><code>doctl<\/code> ile Docker Giri\u015fi Yap\u0131n:<\/strong><br \/>\n    \u0130majlar\u0131 \u00e7ekece\u011finiz makinede <code>doctl<\/code> kurulu ve DigitalOcean hesab\u0131n\u0131zla kimlik do\u011frulamas\u0131 yap\u0131lm\u0131\u015f olmal\u0131d\u0131r. Ard\u0131ndan a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">doctl registry login<\/code><\/pre>\n<p>    Bu komut, Docker istemcinizi DOCR&#8217;a giri\u015f yapacak \u015fekilde yap\u0131land\u0131r\u0131r ve imaj \u00e7ekme i\u015flemlerine izin verir. E\u011fer bir DigitalOcean Kubernetes (DOKS) k\u00fcmesi kullan\u0131yorsan\u0131z, DOKS otomatik olarak bu kimlik do\u011frulamas\u0131n\u0131 sizin i\u00e7in y\u00f6netir, bu nedenle genellikle manuel olarak <code>doctl registry login<\/code> \u00e7al\u0131\u015ft\u0131rman\u0131za gerek kalmaz. Ancak bir Droplet veya ba\u015fka bir sanal sunucu kullan\u0131yorsan\u0131z, bu ad\u0131m\u0131 uygulaman\u0131z \u015fartt\u0131r.<\/p>\n<h3>\u0130maj\u0131 \u00c7ekme (Pull)<\/h3>\n<p>Kimlik do\u011frulamas\u0131n\u0131 yapt\u0131ktan sonra, <code>docker pull<\/code> komutunu kullanarak imaj\u0131n\u0131z\u0131 DOCR&#8217;dan \u00e7ekebilirsiniz. \u0130maj\u0131n tam yolunu belirtmeniz \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">docker pull registry.digitalocean.com\/<registry-adi>\/<imaj-adi>:<etiket><\/code><\/pre>\n<p>*   <code><registry-adi><\/code>: DigitalOcean Container Registry&#8217;nizin ad\u0131.<br \/>\n*   <code><imaj-adi><\/code>: \u00c7ekmek istedi\u011finiz imaj\u0131n ad\u0131.<br \/>\n*   <code><etiket><\/code>: \u00c7ekmek istedi\u011finiz imaj\u0131n etiketi (\u00f6rne\u011fin, <code>latest<\/code>, <code>1.0<\/code>).<\/p>\n<p><strong>\u00d6rnek:<\/strong><br \/>\n\u00d6nceki b\u00f6l\u00fcmde g\u00f6nderdi\u011fimiz <code>my-app:1.0<\/code> imaj\u0131n\u0131 \u00e7ekelim:<\/p>\n<pre><code class=\"language-bash\">docker pull registry.digitalocean.com\/my-first-registry\/my-app:1.0<\/code><\/pre>\n<p>E\u011fer belirli bir etiket belirtmezseniz, Docker varsay\u0131lan olarak <code>latest<\/code> etiketini \u00e7ekmeye \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>\u0130maj\u0131n boyutu ve a\u011f ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ba\u011fl\u0131 olarak \u00e7ekme i\u015flemi biraz zaman alabilir. Ba\u015far\u0131l\u0131 bir \u015fekilde tamamland\u0131\u011f\u0131nda, imaj yerel Docker imaj listenize eklenecektir.<\/p>\n<p><strong>Do\u011frulama:<\/strong><br \/>\n\u0130maj\u0131n ba\u015far\u0131yla \u00e7ekildi\u011fini do\u011frulamak i\u00e7in yerel Docker imajlar\u0131n\u0131z\u0131 listeleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">docker images<\/code><\/pre>\n<p>\u00c7ekti\u011finiz imaj\u0131n (<code>registry.digitalocean.com\/my-first-registry\/my-app<\/code> gibi) listede g\u00f6r\u00fcnd\u00fc\u011f\u00fcn\u00fc kontrol edin.<\/p>\n<h3>\u00c7ekilen \u0130maj\u0131 Kullanma<\/h3>\n<p>\u0130maj\u0131 yerel makinenize veya sunucunuza \u00e7ektikten sonra, <code>docker run<\/code> komutuyla bu imajdan bir konteyner ba\u015flatabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">docker run -d --name <konteyner-adi> registry.digitalocean.com\/<registry-adi>\/<imaj-adi>:<etiket><\/code><\/pre>\n<p>*   <code>-d<\/code>: Konteyneri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r.<br \/>\n*   <code>--name <konteyner-adi><\/code>: Konteynerinize okunabilir bir isim verir.<\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-bash\">docker run -d --name my-running-app registry.digitalocean.com\/my-first-registry\/my-app:1.0<\/code><\/pre>\n<p>E\u011fer imaj\u0131n\u0131z bir web uygulamas\u0131 i\u00e7eriyorsa ve belirli bir portta dinliyorsa, <code>docker run<\/code> komutuna port e\u015fle\u015ftirmesi (<code>-p<\/code>) eklemeniz gerekebilir:<\/p>\n<pre><code class=\"language-bash\">docker run -d -p 80:8080 --name my-web-app registry.digitalocean.com\/my-first-registry\/my-web-app:latest<\/code><\/pre>\n<p>Bu \u00f6rnekte, konteynerin 8080 portunu host makinenin 80 portuna e\u015fle\u015ftiriyoruz.<\/p>\n<p><strong>Konteynerin \u00c7al\u0131\u015ft\u0131\u011f\u0131n\u0131 Do\u011frulama:<\/strong><br \/>\n\u00c7al\u0131\u015fan konteynerlerinizi listeleyerek uygulaman\u0131z\u0131n ba\u015far\u0131yla ba\u015flat\u0131ld\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">docker ps<\/code><\/pre>\n<p><code>my-running-app<\/code> veya <code>my-web-app<\/code> ad\u0131ndaki konteynerinizin listede <code>Up<\/code> durumda oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<p>DigitalOcean Container Registry&#8217;den imaj \u00e7ekme ve bunlar\u0131 \u00e7al\u0131\u015ft\u0131rma s\u00fcreci bu \u015fekildedir. Bu ad\u0131mlar, uygulamalar\u0131n\u0131z\u0131 DigitalOcean altyap\u0131s\u0131nda veya di\u011fer ortamlarda da\u011f\u0131tmak i\u00e7in temel bir temel olu\u015fturur.<\/p>\n<h2>DOCR Y\u00f6netimi ve Bak\u0131m\u0131: En \u0130yi Uygulamalar<\/h2>\n<p>DigitalOcean Container Registry (DOCR) sadece imaj depolamakla kalmaz, ayn\u0131 zamanda imajlar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini, ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc ve eri\u015fimini y\u00f6netmek i\u00e7in \u00e7e\u015fitli ara\u00e7lar ve en iyi uygulamalar sunar. Etkili bir y\u00f6netim, registry&#8217;nizin d\u00fczenli, g\u00fcvenli ve maliyet etkin kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>\u0130majlar\u0131 Listeleme ve Silme<\/h3>\n<p>Registry&#8217;nizdeki imajlar\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmek ve eski veya gereksiz imajlar\u0131 silmek, hem depolama maliyetlerini d\u00fc\u015f\u00fcr\u00fcr hem de registry&#8217;yi d\u00fczenli tutar.<\/p>\n<p>*   <strong>T\u00fcm Depolar\u0131 Listeleme:<\/strong><br \/>\n    Registry&#8217;nizdeki t\u00fcm depolar\u0131 (repository) g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">doctl registry repository list<\/code><\/pre>\n<p>    Bu komut, her bir deponun ad\u0131n\u0131, i\u00e7erdi\u011fi imaj say\u0131s\u0131n\u0131 ve toplam boyutunu g\u00f6sterir.<\/p>\n<p>*   <strong>Belirli Bir Depodaki \u0130maj Etiketlerini Listeleme:<\/strong><br \/>\n    Belirli bir depodaki t\u00fcm etiketleri (s\u00fcr\u00fcmleri) g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">doctl registry repository get <depo-adi><\/code><\/pre>\n<p>    <strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl registry repository get my-app<\/code><\/pre>\n<p>    Bu komut, <code>my-app<\/code> deposundaki her bir imaj etiketini, boyutunu, ne zaman olu\u015fturuldu\u011funu ve manifest \u00f6zetini (digest) g\u00f6sterir.<\/p>\n<p>*   <strong>Depo Silme:<\/strong><br \/>\n    T\u00fcm bir depoyu ve i\u00e7erdi\u011fi t\u00fcm imajlar\u0131 silmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">doctl registry repository delete <depo-adi><\/code><\/pre>\n<p>    <strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl registry repository delete old-project-app<\/code><\/pre>\n<p>    Bu i\u015flem geri al\u0131namaz, bu y\u00fczden dikkatli olun.<\/p>\n<p>*   <strong>Belirli Bir \u0130maj Etiketini Silme:<\/strong><br \/>\n    Bir depodaki belirli bir imaj etiketini silmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">doctl registry repository tag delete <depo-adi> <etiket><\/code><\/pre>\n<p>    <strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl registry repository tag delete my-app 1.0<\/code><\/pre>\n<p>    Bu komut, <code>my-app<\/code> deposundaki <code>1.0<\/code> etiketli imaj\u0131 siler. E\u011fer ayn\u0131 imaja i\u015faret eden ba\u015fka etiketler varsa, imaj tamamen silinmez; sadece o etiket kald\u0131r\u0131l\u0131r. \u0130maj\u0131n tamamen silinmesi i\u00e7in t\u00fcm etiketlerinin silinmesi veya imaj manifest \u00f6zetinin (digest) do\u011frudan silinmesi gerekir.<\/p>\n<h3>G\u00fcvenlik<\/h3>\n<p>DOCR imajlar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak kritik \u00f6neme sahiptir.<\/p>\n<p>*   <strong>Eri\u015fim Kontrol\u00fc (ACL) ve DigitalOcean Tak\u0131mlar\u0131:<\/strong><br \/>\n    DigitalOcean Tak\u0131mlar\u0131 (Teams) \u00f6zelli\u011fini kullanarak DOCR&#8217;a kimlerin eri\u015febilece\u011fini ve hangi izinlere sahip olaca\u011f\u0131n\u0131 y\u00f6netebilirsiniz. Tak\u0131m \u00fcyelerine &#8220;Okuyucu&#8221; (Reader), &#8220;Yaz\u0131c\u0131&#8221; (Writer) veya &#8220;Y\u00f6netici&#8221; (Admin) rolleri atayarak registry eri\u015fimini gran\u00fcler bir \u015fekilde kontrol edebilirsiniz.<br \/>\n*   <strong>API Token G\u00fcvenli\u011fi:<\/strong><br \/>\n    <code>doctl<\/code> veya CI\/CD s\u00fcre\u00e7leri i\u00e7in kulland\u0131\u011f\u0131n\u0131z API belirte\u00e7lerini g\u00fcvenli bir \u015fekilde saklay\u0131n. Bu belirte\u00e7leri asla genel depolarda (GitHub gibi) payla\u015fmay\u0131n ve d\u00fczenli olarak d\u00f6nd\u00fcr\u00fcn (yenileyin).<br \/>\n*   <strong>\u0130maj Taramas\u0131:<\/strong><br \/>\n    DigitalOcean Container Registry, \u015fu anda yerle\u015fik bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 tarama hizmeti sunmamaktad\u0131r. Bu nedenle, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 tespit etmek i\u00e7in \u00fc\u00e7\u00fcnc\u00fc taraf ara\u00e7lar\u0131 veya hizmetleri (\u00f6rne\u011fin, Clair, Trivy, Snyk) CI\/CD i\u015flem hatt\u0131n\u0131za entegre etmeyi d\u00fc\u015f\u00fcnebilirsiniz.<\/p>\n<h3>Otomatik Temizleme Politikalar\u0131<\/h3>\n<p>B\u00fcy\u00fck projelerde y\u00fczlerce, hatta binlerce imaj etiketi birikebilir. Bunlar\u0131 manuel olarak temizlemek zorlu bir i\u015ftir. DigitalOcean DOCR, \u015fu anda yerle\u015fik otomatik temizleme politikalar\u0131 sunmamaktad\u0131r (baz\u0131 di\u011fer bulut sa\u011flay\u0131c\u0131lar\u0131 gibi). Ancak, kendi otomatik temizleme stratejilerinizi uygulayabilirsiniz:<\/p>\n<p>*   <strong>Betiklerle Temizleme:<\/strong> Belirli bir ya\u015ftan (\u00f6rne\u011fin, 90 g\u00fcnden eski) veya belirli say\u0131da etiketi a\u015fan (\u00f6rne\u011fin, her depoda en fazla 10 son etiket) imajlar\u0131 silmek i\u00e7in <code>doctl<\/code> komutlar\u0131n\u0131 kullanan \u00f6zel bir betik (cron job olarak \u00e7al\u0131\u015ft\u0131r\u0131labilir) yazabilirsiniz.<br \/>\n*   <strong>CI\/CD Entegrasyonu:<\/strong> CI\/CD i\u015flem hatlar\u0131n\u0131z\u0131n bir par\u00e7as\u0131 olarak, her ba\u015far\u0131l\u0131 da\u011f\u0131t\u0131mdan sonra eski imaj etiketlerini otomatik olarak silen ad\u0131mlar ekleyebilirsiniz.<\/p>\n<h3>Entegrasyonlar<\/h3>\n<p>DOCR&#8217;\u0131n g\u00fcc\u00fc, DigitalOcean ekosistemi ve di\u011fer geli\u015ftirme ara\u00e7lar\u0131yla entegrasyon yetene\u011finden gelir.<\/p>\n<p>*   <strong>DigitalOcean Kubernetes (DOKS) ile Entegrasyon:<\/strong><br \/>\n    DOKS, DOCR ile sorunsuz bir \u015fekilde entegre \u00e7al\u0131\u015f\u0131r. Bir DOKS k\u00fcmesi olu\u015fturdu\u011funuzda, DOCR&#8217;a otomatik olarak kimlik do\u011frulamas\u0131 yap\u0131l\u0131r. Bu sayede, Kubernetes da\u011f\u0131t\u0131m tan\u0131mlamalar\u0131n\u0131zda (YAML) DOCR&#8217;daki imajlar\u0131n\u0131z\u0131 do\u011frudan kullanabilirsiniz, <code>ImagePullSecret<\/code> yap\u0131land\u0131rmas\u0131na gerek kalmaz.<\/p>\n<pre><code class=\"language-yaml\">apiVersion: apps\/v1\n    kind: Deployment\n    metadata:\n      name: my-app-deployment\n    spec:\n      replicas: 3\n      selector:\n        matchLabels:\n          app: my-app\n      template:\n        metadata:\n          labels:\n            app: my-app\n        spec:\n          containers:\n          - name: my-app-container\n            image: registry.digitalocean.com\/my-first-registry\/my-app:latest\n            ports:\n            - containerPort: 8080<\/code><\/pre>\n<p>*   <strong>CI\/CD Ara\u00e7lar\u0131 (Jenkins, GitLab CI, GitHub Actions) ile Entegrasyon:<\/strong><br \/>\n    DOCR, pop\u00fcler CI\/CD ara\u00e7lar\u0131yla kolayca entegre edilebilir. \u0130\u015flem hatlar\u0131n\u0131zda <code>doctl registry login<\/code>, <code>docker build<\/code>, <code>docker tag<\/code> ve <code>docker push<\/code> komutlar\u0131n\u0131 kullanarak otomatik derleme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7leri olu\u015fturabilirsiniz. Genellikle, DigitalOcean API belirtecinizi CI\/CD ortam\u0131n\u0131z\u0131n gizli de\u011fi\u015fkenleri (secrets) olarak saklaman\u0131z ve <code>doctl auth init<\/code> veya <code>doctl registry login<\/code> komutunu bu belirte\u00e7le \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir.<\/p>\n<p>Bu y\u00f6netim ve bak\u0131m ipu\u00e7lar\u0131, DigitalOcean Container Registry&#8217;nizi daha verimli, g\u00fcvenli ve \u00f6l\u00e7eklenebilir bir \u015fekilde kullanman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>DOCR Fiyatland\u0131rmas\u0131: Maliyet Yap\u0131s\u0131<\/h2>\n<p>DigitalOcean Container Registry (DOCR) hizmetinin maliyetini anlamak, b\u00fct\u00e7enizi y\u00f6netmek ve gereksiz harcamalardan ka\u00e7\u0131nmak i\u00e7in \u00f6nemlidir. DOCR fiyatland\u0131rmas\u0131 genellikle iki ana bile\u015fene dayan\u0131r: depolama alan\u0131 ve veri transferi (bant geni\u015fli\u011fi).<\/p>\n<h3>Depolama Alan\u0131<\/h3>\n<p>DOCR&#8217;da depolad\u0131\u011f\u0131n\u0131z Docker imajlar\u0131n\u0131n boyutu, ayl\u0131k depolama maliyetinizi belirler. DigitalOcean genellikle gigabayt (GB) ba\u015f\u0131na bir \u00fccretlendirme modeli kullan\u0131r.<\/p>\n<p>*   <strong>\u00dccretsiz Katman (Free Tier):<\/strong> DigitalOcean, yeni kullan\u0131c\u0131lar veya k\u00fc\u00e7\u00fck projeler i\u00e7in genellikle belirli bir miktarda \u00fccretsiz depolama alan\u0131 sunar. \u00d6rne\u011fin, ilk 500 MB depolama alan\u0131 \u00fccretsiz olabilir. Bu, DOCR&#8217;\u0131 denemek veya \u00e7ok k\u00fc\u00e7\u00fck projeler i\u00e7in kullanmak isteyenler i\u00e7in harika bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. \u00dccretsiz katman\u0131n s\u0131n\u0131rlar\u0131n\u0131 ve ge\u00e7erlilik s\u00fcresini DigitalOcean&#8217;\u0131n resmi fiyatland\u0131rma sayfas\u0131ndan kontrol etmek \u00f6nemlidir.<br \/>\n*   <strong>\u00dccretli Katman:<\/strong> \u00dccretsiz katman\u0131 a\u015ft\u0131\u011f\u0131n\u0131zda veya daha fazla depolama alan\u0131na ihtiyac\u0131n\u0131z oldu\u011funda, GB ba\u015f\u0131na ayl\u0131k bir \u00fccret \u00f6dersiniz. Bu \u00fccret, genellikle di\u011fer bulut sa\u011flay\u0131c\u0131lar\u0131n\u0131n benzer hizmetleriyle rekabet\u00e7i d\u00fczeydedir. \u00d6rne\u011fin, ayl\u0131k 0.07 USD\/GB gibi bir fiyatland\u0131rma g\u00f6rebilirsiniz (bu rakamlar zamanla de\u011fi\u015febilir, g\u00fcncel bilgi i\u00e7in DigitalOcean&#8217;\u0131n resmi sitesini kontrol edin).<\/p>\n<h3>Veri Transferi (Bandwidth)<\/h3>\n<p>Depolama alan\u0131n\u0131n yan\u0131 s\u0131ra, DOCR&#8217;dan imaj \u00e7ekerken veya DOCR&#8217;a imaj g\u00f6nderirken ger\u00e7ekle\u015fen veri transferi (bant geni\u015fli\u011fi) de maliyetin bir par\u00e7as\u0131 olabilir.<\/p>\n<p>*   <strong>Gelen Veri Transferi (Ingress):<\/strong> Genellikle DOCR&#8217;a imaj g\u00f6nderirken (push) ger\u00e7ekle\u015fen veri transferi i\u00e7in \u00fccret al\u0131nmaz.<br \/>\n*   <strong>Giden Veri Transferi (Egress):<\/strong> DOCR&#8217;dan imaj \u00e7ekerken (pull) ger\u00e7ekle\u015fen veri transferi i\u00e7in \u00fccret al\u0131nabilir. Ancak, DigitalOcean genellikle t\u00fcm hizmetleri aras\u0131nda payla\u015f\u0131lan ayl\u0131k bir \u00fccretsiz giden veri transferi kotas\u0131 sunar (\u00f6rne\u011fin, 1 TB). Bu kota, t\u00fcm Droplet&#8217;leriniz, veritabanlar\u0131n\u0131z ve DOCR&#8217;\u0131n\u0131z dahil olmak \u00fczere t\u00fcm DigitalOcean hizmetlerinizden \u00e7\u0131kan veriyi kapsar. E\u011fer bu kotay\u0131 a\u015farsan\u0131z, GB ba\u015f\u0131na ek bir \u00fccret \u00f6demeniz gerekir.<br \/>\n*   <strong>B\u00f6lge \u0130\u00e7i Transferler:<\/strong> E\u011fer imajlar\u0131 DOCR&#8217;dan ayn\u0131 DigitalOcean veri merkezindeki (\u00f6rne\u011fin, Frankfurt&#8217;taki bir DOCR&#8217;dan Frankfurt&#8217;taki bir DOKS k\u00fcmesine) bir Droplet&#8217;e veya Kubernetes k\u00fcmesine \u00e7ekiyorsan\u0131z, bu transferler genellikle \u00fccretsizdir veya \u00e7ok d\u00fc\u015f\u00fck maliyetlidir. B\u00f6lgeler aras\u0131 transferler (\u00f6rne\u011fin, Frankfurt&#8217;taki DOCR&#8217;dan New York&#8217;taki bir Droplet&#8217;e) daha maliyetli olabilir.<\/p>\n<h3>Maliyet Optimizasyonu \u0130pu\u00e7lar\u0131<\/h3>\n<p>DOCR maliyetlerinizi optimize etmek i\u00e7in a\u015fa\u011f\u0131daki stratejileri uygulayabilirsiniz:<\/p>\n<p>1.  <strong>Gereksiz \u0130majlar\u0131 Temizleyin:<\/strong> D\u00fczenli olarak eski, kullan\u0131lmayan veya gereksiz Docker imaj etiketlerini ve depolar\u0131n\u0131 silin. Otomatik temizleme betikleri kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcn. Her depolanan imaj GB ba\u015f\u0131na maliyet demektir.<br \/>\n2.  <strong>\u0130maj Boyutlar\u0131n\u0131 Optimize Edin:<\/strong> Docker imajlar\u0131n\u0131z\u0131n boyutunu m\u00fcmk\u00fcn oldu\u011funca k\u00fc\u00e7\u00fck tutmaya \u00e7al\u0131\u015f\u0131n. Multi-stage build&#8217;ler kullan\u0131n, gereksiz ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve dosyalar\u0131 imajdan \u00e7\u0131kar\u0131n. Daha k\u00fc\u00e7\u00fck imajlar hem depolama maliyetini d\u00fc\u015f\u00fcr\u00fcr hem de \u00e7ekme\/g\u00f6nderme s\u00fcrelerini h\u0131zland\u0131r\u0131r.<br \/>\n3.  <strong>\u00dccretsiz Katman\u0131 Kullan\u0131n:<\/strong> E\u011fer projeniz k\u00fc\u00e7\u00fckse veya yeni ba\u015fl\u0131yorsan\u0131z, DigitalOcean&#8217;\u0131n sundu\u011fu \u00fccretsiz katmandan en iyi \u015fekilde yararlan\u0131n.<br \/>\n4.  <strong>B\u00f6lge Yak\u0131nl\u0131\u011f\u0131n\u0131 Koruyun:<\/strong> M\u00fcmk\u00fcnse, DOCR&#8217;\u0131n\u0131z\u0131 uygulamalar\u0131n\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 DigitalOcean veri merkezine yak\u0131n bir b\u00f6lgede bar\u0131nd\u0131r\u0131n. Bu, giden veri transferi maliyetlerini ve gecikmeyi azaltacakt\u0131r.<br \/>\n5.  <strong>Veri Transferi Kotas\u0131n\u0131 Takip Edin:<\/strong> DigitalOcean kontrol panelinden ayl\u0131k veri transferi kullan\u0131m\u0131n\u0131z\u0131 d\u00fczenli olarak kontrol edin. Kotay\u0131 a\u015fmaya yakla\u015ft\u0131\u011f\u0131n\u0131zda uyar\u0131lar ayarlayabilirsiniz.<\/p>\n<p>DigitalOcean&#8217;\u0131n resmi fiyatland\u0131rma sayfas\u0131, her zaman en g\u00fcncel ve do\u011fru fiyatland\u0131rma bilgilerini sa\u011flayacakt\u0131r. Hizmeti kullanmadan \u00f6nce bu sayfay\u0131 kontrol etmek, maliyetler konusunda net bir fikir edinmenizi sa\u011flayacakt\u0131r.<\/p>\n<h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri: Troubleshooting<\/h2>\n<p>DigitalOcean Container Registry (DOCR) kullan\u0131rken kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri a\u015fa\u011f\u0131da listelenmi\u015ftir.<\/p>\n<h3>Kimlik Do\u011frulama Hatalar\u0131<\/h3>\n<p>Bu, DOCR ile \u00e7al\u0131\u015f\u0131rken en s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlardan biridir. Genellikle <code>docker login<\/code> veya <code>docker push\/pull<\/code> s\u0131ras\u0131nda ortaya \u00e7\u0131kar.<\/p>\n<p>*   <strong>Hata Mesaj\u0131 \u00d6rne\u011fi:<\/strong> <code>Error response from daemon: Get \"https:\/\/registry.digitalocean.com\/v2\/\": unauthorized: authentication required<\/code> veya <code>denied: requested access to the resource is denied<\/code><br \/>\n*   <strong>Olas\u0131 Nedenler ve \u00c7\u00f6z\u00fcmler:<\/strong><br \/>\n    *   <strong>Yanl\u0131\u015f veya S\u00fcresi Dolan Kimlik Bilgileri:<\/strong> <code>doctl registry login<\/code> komutunu tekrar \u00e7al\u0131\u015ft\u0131rarak Docker istemcinizin kimlik bilgilerini yenileyin. DigitalOcean API belirte\u00e7leri belirli bir s\u00fcre sonra ge\u00e7erlili\u011fini yitirebilir.<br \/>\n    *   <strong><code>doctl<\/code> Kimlik Do\u011frulamas\u0131 Yap\u0131lmam\u0131\u015f:<\/strong> <code>doctl<\/code> CLI&#8217;\u0131n DigitalOcean hesab\u0131n\u0131zla do\u011fru bir \u015fekilde kimlik do\u011frulamas\u0131 yap\u0131ld\u0131\u011f\u0131ndan emin olun (<code>doctl auth init<\/code>).<br \/>\n    *   <strong>\u0130zin Sorunlar\u0131:<\/strong> DigitalOcean hesab\u0131n\u0131zdaki kullan\u0131c\u0131n\u0131n veya API belirtecinin DOCR&#8217;a eri\u015fim ve imaj g\u00f6nderme\/\u00e7ekme izinlerine sahip oldu\u011fundan emin olun. DigitalOcean Tak\u0131mlar\u0131 kullan\u0131yorsan\u0131z, kullan\u0131c\u0131ya do\u011fru rollerin atand\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n    *   <strong>Yanl\u0131\u015f Registry Ad\u0131:<\/strong> <code>docker login<\/code> veya <code>docker push\/pull<\/code> komutlar\u0131nda <code>registry.digitalocean.com<\/code> adresini do\u011fru yazd\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<h3>\u0130maj Bulunamad\u0131 Hatalar\u0131<\/h3>\n<p>Bir imaj\u0131 \u00e7ekmeye veya g\u00f6ndermeye \u00e7al\u0131\u015f\u0131rken imaj\u0131n bulunamad\u0131\u011f\u0131na dair hatalar alabilirsiniz.<\/p>\n<p>*   <strong>Hata Mesaj\u0131 \u00d6rne\u011fi:<\/strong> <code>Error response from daemon: pull access denied for registry.digitalocean.com\/<registry-adi>\/<imaj-adi>, repository does not exist or may require 'docker login'<\/code> veya <code>manifest unknown<\/code><br \/>\n*   <strong>Olas\u0131 Nedenler ve \u00c7\u00f6z\u00fcmler:<\/strong><br \/>\n    *   <strong>Yanl\u0131\u015f \u0130maj Yolu veya Etiket:<\/strong> <code>docker push<\/code> veya <code>docker pull<\/code> komutlar\u0131nda kulland\u0131\u011f\u0131n\u0131z imaj yolunun (<code>registry.digitalocean.com\/<registry-adi>\/<imaj-adi>:<etiket><\/code>) tamamen do\u011fru oldu\u011fundan emin olun. Registry ad\u0131n\u0131, imaj ad\u0131n\u0131 ve etiketi dikkatlice kontrol edin. Etiketin (\u00f6rne\u011fin, <code>latest<\/code>, <code>1.0<\/code>) ger\u00e7ekten DOCR&#8217;da var oldu\u011fundan emin olun.<br \/>\n    *   <strong>Registry Ad\u0131 Yanl\u0131\u015f:<\/strong> <code>doctl registry get<\/code> veya DigitalOcean kontrol panelinden registry ad\u0131n\u0131z\u0131n do\u011frulu\u011funu teyit edin.<br \/>\n    *   <strong>\u0130maj Hi\u00e7 G\u00f6nderilmedi:<\/strong> \u0130maj\u0131n ger\u00e7ekten DOCR&#8217;a g\u00f6nderildi\u011finden emin olun. DigitalOcean kontrol panelini veya <code>doctl registry repository get <imaj-adi><\/code> komutunu kullanarak imaj\u0131n varl\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<br \/>\n    *   <strong>B\u00fcy\u00fck\/K\u00fc\u00e7\u00fck Harf Duyarl\u0131l\u0131\u011f\u0131:<\/strong> Docker imaj adlar\u0131 genellikle k\u00fc\u00e7\u00fck harflerle yaz\u0131lmal\u0131d\u0131r. Adland\u0131rma kurallar\u0131na uydu\u011funuzdan emin olun.<\/p>\n<h3>\u0130zin Hatalar\u0131<\/h3>\n<p>Baz\u0131 i\u015flemler i\u00e7in yetersiz izinler nedeniyle hatalar alabilirsiniz.<\/p>\n<p>*   <strong>Hata Mesaj\u0131 \u00d6rne\u011fi:<\/strong> <code>Error: You do not have permission to perform this action. Please ensure you have the necessary permissions for the resource.<\/code><br \/>\n*   <strong>Olas\u0131 Nedenler ve \u00c7\u00f6z\u00fcmler:<\/strong><br \/>\n    *   <strong>DigitalOcean API Belirteci \u0130zinleri:<\/strong> Kulland\u0131\u011f\u0131n\u0131z DigitalOcean API belirtecinin DOCR kaynaklar\u0131na (okuma, yazma, silme) eri\u015fim izinlerine sahip oldu\u011fundan emin olun. Belirteci olu\u015ftururken do\u011fru kapsamlar\u0131 (scopes) se\u00e7ti\u011finizden emin olun.<br \/>\n    *   <strong>Tak\u0131m Rolleri:<\/strong> E\u011fer bir DigitalOcean Tak\u0131m\u0131 \u00fcyesiyseniz, tak\u0131m y\u00f6neticinizin size DOCR \u00fczerinde gerekli rolleri (\u00f6rne\u011fin, &#8220;Y\u00f6netici&#8221; veya &#8220;Yaz\u0131c\u0131&#8221;) atad\u0131\u011f\u0131ndan emin olun.<\/p>\n<h3>A\u011f Ba\u011flant\u0131s\u0131 Sorunlar\u0131<\/h3>\n<p>\u0130nternet ba\u011flant\u0131n\u0131zdaki sorunlar da DOCR i\u015flemlerini etkileyebilir.<\/p>\n<p>*   <strong>Hata Mesaj\u0131 \u00d6rne\u011fi:<\/strong> <code>Error response from daemon: Head \"https:\/\/registry.digitalocean.com\/v2\/\": dial tcp: lookup registry.digitalocean.com: no such host<\/code> veya <code>connection refused<\/code><br \/>\n*   <strong>Olas\u0131 Nedenler ve \u00c7\u00f6z\u00fcmler:<\/strong><br \/>\n    *   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Makinenizin internet ba\u011flant\u0131s\u0131n\u0131n aktif ve stabil oldu\u011fundan emin olun.<br \/>\n    *   <strong>DNS Sorunlar\u0131:<\/strong> <code>registry.digitalocean.com<\/code> adresinin do\u011fru bir \u015fekilde \u00e7\u00f6z\u00fcmlendi\u011finden emin olun. <code>ping registry.digitalocean.com<\/code> komutunu deneyebilirsiniz.<br \/>\n    *   <strong>G\u00fcvenlik Duvar\u0131\/Proxy:<\/strong> E\u011fer bir g\u00fcvenlik duvar\u0131n\u0131n veya proxy sunucusunun arkas\u0131ndaysan\u0131z, Docker&#8217;\u0131n DigitalOcean Container Registry&#8217;ye eri\u015fmesine izin verildi\u011finden emin olun. Proxy ayarlar\u0131n\u0131z\u0131 Docker i\u00e7in yap\u0131land\u0131rman\u0131z gerekebilir.<\/p>\n<h3>Di\u011fer Genel Sorunlar<\/h3>\n<p>*   <strong><code>doctl<\/code> Komutu Bulunamad\u0131:<\/strong> <code>doctl<\/code>&#8216;un sistem PATH&#8217;inizde oldu\u011fundan emin olun. Kurulum ad\u0131mlar\u0131n\u0131 tekrar g\u00f6zden ge\u00e7irin.<br \/>\n*   <strong>Docker Daemon \u00c7al\u0131\u015fm\u0131yor:<\/strong> Docker komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce Docker Daemon&#8217;\u0131n (Docker Engine) \u00e7al\u0131\u015f\u0131r durumda oldu\u011fundan emin olun. <code>sudo systemctl status docker<\/code> (Linux) veya Docker Desktop uygulamas\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<p>Bu sorun giderme ad\u0131mlar\u0131, DOCR ile \u00e7al\u0131\u015f\u0131rken kar\u015f\u0131la\u015fabilece\u011finiz \u00e7o\u011fu problemi \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. Sorun devam ederse, DigitalOcean&#8217;\u0131n resmi dok\u00fcmantasyonuna ba\u015fvurabilir veya DigitalOcean destek ekibiyle ileti\u015fime ge\u00e7ebilirsiniz.<\/p>\n<h2>Sonu\u00e7: Neden DOCR Tercih Edilmeli?<\/h2>\n<p>DigitalOcean Container Registry (DOCR), modern bulut tabanl\u0131 uygulama geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7leri i\u00e7in g\u00fc\u00e7l\u00fc, g\u00fcvenilir ve entegre bir \u00e7\u00f6z\u00fcm sunar. Bu rehber boyunca, DOCR&#8217;\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, Docker imajlar\u0131n\u0131z\u0131 nas\u0131l g\u00fcvenle depolayaca\u011f\u0131n\u0131z\u0131 ve farkl\u0131 ortamlara nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendiniz.<\/p>\n<p>DOCR&#8217;\u0131n temel avantajlar\u0131, DigitalOcean ekosistemiyle olan derin entegrasyonu, basit ve anla\u015f\u0131l\u0131r fiyatland\u0131rma yap\u0131s\u0131, y\u00fcksek performansl\u0131 ve g\u00fcvenilir altyap\u0131s\u0131d\u0131r. \u00d6zellikle DigitalOcean Droplet&#8217;leri veya Kubernetes (DOKS) k\u00fcmeleri \u00fczerinde uygulamalar\u0131n\u0131z\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z, DOCR, imaj y\u00f6netimi ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinizi \u00f6nemli \u00f6l\u00e7\u00fcde basitle\u015ftirir. Kimlik do\u011frulama kolayl\u0131\u011f\u0131 ve <code>doctl<\/code> CLI ile sa\u011flanan otomasyon yetenekleri, geli\u015ftiricilerin ve DevOps ekiplerinin verimlili\u011fini art\u0131r\u0131r.<\/p>\n<p>Konteyner teknolojileri benimsenmeye devam ettik\u00e7e, g\u00fcvenilir bir konteyner kay\u0131t defteri hizmeti vazge\u00e7ilmez hale gelmektedir. DOCR, bu ihtiyac\u0131 kar\u015f\u0131larken, DigitalOcean&#8217;\u0131n kullan\u0131c\u0131 dostu yakla\u015f\u0131m\u0131n\u0131 ve \u00f6l\u00e7eklenebilir altyap\u0131s\u0131n\u0131 bir araya getirir. \u0130ster k\u00fc\u00e7\u00fck bir proje ister b\u00fcy\u00fck bir mikroservis mimarisi geli\u015ftiriyor olun, DOCR, Docker imajlar\u0131n\u0131z\u0131 y\u00f6netmek i\u00e7in sa\u011flam bir temel sunar.<\/p>\n<p>\u00d6zetle, DigitalOcean Container Registry, \u00f6zellikle DigitalOcean platformunda \u00e7al\u0131\u015fanlar i\u00e7in konteyner imajlar\u0131n\u0131 depolama, y\u00f6netme ve da\u011f\u0131tma konusunda ak\u0131ll\u0131 ve stratejik bir se\u00e7imdir. Sa\u011flad\u0131\u011f\u0131 entegrasyon kolayl\u0131\u011f\u0131, g\u00fcvenlik \u00f6zellikleri ve maliyet etkinli\u011fi ile geli\u015ftirme s\u00fcre\u00e7lerinizi h\u0131zland\u0131racak ve operasyonel y\u00fck\u00fcn\u00fcz\u00fc azaltacakt\u0131r. Gelecekteki projelerinizde konteynerizasyonun t\u00fcm potansiyelinden yararlanmak i\u00e7in DOCR&#8217;\u0131 de\u011ferlendirmeniz \u015fiddetle tavsiye edilir.<br \/>\n<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi\nDijitalOcean Container Registry (DOCR) Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1342],"tags":[],"class_list":{"0":"post-38087","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ai","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi\" \/>\n<meta property=\"og:description\" content=\"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi DijitalOcean Container Registry (DOCR) Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-23T00:41:02+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"26 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi\",\"datePublished\":\"2026-01-23T00:41:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/\"},\"wordCount\":4789,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AI\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/\",\"name\":\"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-23T00:41:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi","og_description":"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi DijitalOcean Container Registry (DOCR) Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?","og_url":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-23T00:41:02+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"26 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi","datePublished":"2026-01-23T00:41:02+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/"},"wordCount":4789,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AI"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/","name":"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-23T00:41:02+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/dijitalocean-container-registry-kurulumu-ve-kullanimi-kapsamli-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"DijitalOcean Container Registry Kurulumu ve Kullan\u0131m\u0131 Kapsaml\u0131 Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38087","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38087"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38087\/revisions"}],"predecessor-version":[{"id":38088,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38087\/revisions\/38088"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38087"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38087"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}