{"id":39532,"date":"2026-02-23T14:30:39","date_gmt":"2026-02-23T11:30:39","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/"},"modified":"2026-02-23T14:30:39","modified_gmt":"2026-02-23T11:30:39","slug":"yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/","title":{"rendered":"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi"},"content":{"rendered":"<h2>Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde konteyner teknolojileri, uygulamalar\u0131n tutarl\u0131, ta\u015f\u0131nabilir ve izole bir \u015fekilde \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flayarak vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ftir. Podman, Docker&#8217;a g\u00fc\u00e7l\u00fc bir alternatif olarak ortaya \u00e7\u0131km\u0131\u015f, daemon&#8217;s\u0131z mimarisi ve rootless \u00e7al\u0131\u015fma yetene\u011fiyle \u00f6zellikle geli\u015ftiriciler aras\u0131nda pop\u00fclerlik kazanm\u0131\u015ft\u0131r. Bu makalede, Podman kullanarak yerel bir kay\u0131t defteri (registry) nas\u0131l kurulaca\u011f\u0131n\u0131 ve mevcut Podman imajlar\u0131n\u0131n ihtiya\u00e7lar\u0131n\u0131za g\u00f6re nas\u0131l \u00f6zelle\u015ftirilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz. Yerel bir kay\u0131t defteri, geli\u015ftirme ve test ortamlar\u0131nda imajlar\u0131 g\u00fcvenli ve h\u0131zl\u0131 bir \u015fekilde depolaman\u0131za, a\u011f ba\u011flant\u0131s\u0131 olmadan \u00e7al\u0131\u015fman\u0131za ve hassas imajlar\u0131n\u0131z\u0131 bulut ortamlar\u0131na g\u00f6ndermeden \u00f6nce test etmenize olanak tan\u0131r.<\/p>\n<h3>1. Podman Ortam\u0131n\u0131n Haz\u0131rlanmas\u0131<\/h3>\n<p>Yerel bir kay\u0131t defteri kurmaya ve imajlar\u0131 \u00f6zelle\u015ftirmeye ba\u015flamadan \u00f6nce, sisteminizde Podman&#8217;\u0131n kurulu ve \u00e7al\u0131\u015f\u0131r durumda oldu\u011fundan emin olmal\u0131y\u0131z. Bu b\u00f6l\u00fcm, Podman&#8217;\u0131n kurulumunu ve temel komutlar\u0131n\u0131 kapsayacakt\u0131r.<\/p>\n<h4>Podman Kurulumu<\/h4>\n<p>Podman, \u00e7o\u011fu Linux da\u011f\u0131t\u0131m\u0131nda varsay\u0131lan paket y\u00f6neticileri arac\u0131l\u0131\u011f\u0131yla kolayca kurulabilir. Windows ve macOS kullan\u0131c\u0131lar\u0131 i\u00e7in Podman Desktop veya Podman Machine (VM tabanl\u0131) \u00f6nerilir. A\u015fa\u011f\u0131da baz\u0131 pop\u00fcler Linux da\u011f\u0131t\u0131mlar\u0131 i\u00e7in kurulum komutlar\u0131 bulunmaktad\u0131r:<\/p>\n<ul>\n<li><strong>Fedora\/CentOS\/RHEL:<\/strong>\n<pre><code>sudo dnf install podman<\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Debian\/Ubuntu:<\/strong>\n<pre><code>sudo apt update\nsudo apt install podman<\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Arch Linux:<\/strong>\n<pre><code>sudo pacman -S podman<\/pre>\n<p><\/code>\n    <\/li>\n<\/ul>\n<p>Kurulumdan sonra Podman'\u0131n do\u011fru bir \u015fekilde kuruldu\u011funu kontrol etmek i\u00e7in s\u00fcr\u00fcm bilgisini sorgulayabilirsiniz:<\/p>\n<pre><code>podman --version<\/pre>\n<p><\/code><\/p>\n<h4>Temel Podman Komutlar\u0131<\/h4>\n<p>Podman ile \u00e7al\u0131\u015f\u0131rken s\u0131k\u00e7a kullanaca\u011f\u0131n\u0131z baz\u0131 temel komutlar \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>podman pull [imaj_ad\u0131]<\/code>: Uzak bir kay\u0131t defterinden imaj \u00e7eker.<\/li>\n<li><code>podman images<\/code>: Yerel olarak depolanan imajlar\u0131 listeler.<\/li>\n<li><code>podman run [imaj_ad\u0131]<\/code>: Bir imajdan yeni bir konteyner ba\u015flat\u0131r.<\/li>\n<li><code>podman ps -a<\/code>: T\u00fcm konteynerleri (\u00e7al\u0131\u015fan ve durmu\u015f) listeler.<\/li>\n<li><code>podman stop [konteyner_ad\u0131_veya_id]<\/code>: \u00c7al\u0131\u015fan bir konteyneri durdurur.<\/li>\n<li><code>podman rm [konteyner_ad\u0131_veya_id]<\/code>: Bir konteyneri siler.<\/li>\n<li><code>podman rmi [imaj_ad\u0131_veya_id]<\/code>: Bir imaj\u0131 siler.<\/li>\n<\/ul>\n<h3>2. Yerel Podman Kay\u0131t Defteri Kurulumu<\/h3>\n<p>Yerel bir kay\u0131t defteri, imajlar\u0131n\u0131z\u0131 kendi makinenizde depolaman\u0131z\u0131 sa\u011flar. Bu, geli\u015ftirme d\u00f6ng\u00fcs\u00fcn\u00fc h\u0131zland\u0131r\u0131r, a\u011f ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 azalt\u0131r ve hassas imajlar i\u00e7in ek bir g\u00fcvenlik katman\u0131 sunar.<\/p>\n<h4>Kay\u0131t Defteri Konteynerini \u00c7al\u0131\u015ft\u0131rma<\/h4>\n<p>Yerel bir kay\u0131t defteri kurman\u0131n en kolay yolu, resmi <code>registry<\/code> imaj\u0131n\u0131 Podman kullanarak \u00e7al\u0131\u015ft\u0131rmakt\u0131r. Bu imaj, temel bir kay\u0131t defteri sunar.<\/p>\n<pre><code>podman run -d -p 5000:5000 --name local-registry registry:2<\/pre>\n<p><\/code><\/p>\n<p>Bu komut:<\/p>\n<ul>\n<li><code>-d<\/code>: Konteyneri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r.<\/li>\n<li><code>-p 5000:5000<\/code>: Host makinenin 5000 numaral\u0131 portunu konteynerin 5000 numaral\u0131 portuna e\u015fler.<\/li>\n<li><code>--name local-registry<\/code>: Konteynere 'local-registry' ad\u0131n\u0131 verir.<\/li>\n<li><code>registry:2<\/code>: Kullan\u0131lacak imaj\u0131n ad\u0131d\u0131r (resmi Docker Registry imaj\u0131n\u0131n 2. s\u00fcr\u00fcm\u00fc).<\/li>\n<\/ul>\n<p>Konteynerin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code>podman ps<\/code> komutunu kullanabilirsiniz.<\/p>\n<h4>Podman'\u0131 Yerel Kay\u0131t Defteriyle Konu\u015fland\u0131rma<\/h4>\n<p>Varsay\u0131lan olarak, Podman (ve Docker) g\u00fcvenli olmayan (HTTP) kay\u0131t defterlerine imaj itmenize izin vermez. Yerel kay\u0131t defterimiz ba\u015flang\u0131\u00e7ta HTTP \u00fczerinden \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in Podman'a bu kay\u0131t defterine g\u00fcvenmesi gerekti\u011fini bildirmemiz gerekir. Bunun i\u00e7in <code>\/etc\/containers\/registries.conf<\/code> (veya rootless kullan\u0131c\u0131lar i\u00e7in <code>$HOME\/.config\/containers\/registries.conf<\/code>) dosyas\u0131n\u0131 d\u00fczenlememiz gerekir.<\/p>\n<p>Dosyay\u0131 a\u00e7\u0131n ve <code>[registries.insecure]<\/code> b\u00f6l\u00fcm\u00fcne yerel kay\u0131t defterinizin adresini ekleyin:<\/p>\n<pre><code># \/etc\/containers\/registries.conf (veya $HOME\/.config\/containers\/registries.conf)\n\n[registries.insecure]\nregistries = ['localhost:5000']<\/pre>\n<p><\/code><\/p>\n<p>Bu de\u011fi\u015fiklikten sonra Podman servisini yeniden ba\u015flatman\u0131za gerek yoktur, ancak baz\u0131 durumlarda Podman Desktop kullan\u0131yorsan\u0131z uygulaman\u0131n yeniden ba\u015flat\u0131lmas\u0131 gerekebilir.<\/p>\n<h4>Kay\u0131t Defteri Verilerinin Kal\u0131c\u0131l\u0131\u011f\u0131<\/h4>\n<p>Yukar\u0131daki kurulumda, kay\u0131t defteri konteyneri silindi\u011finde t\u00fcm imajlar\u0131n\u0131z da silinecektir. Verilerin kal\u0131c\u0131 olmas\u0131 i\u00e7in bir Podman volume'u kullanmal\u0131y\u0131z:<\/p>\n<pre><code>podman volume create local-registry-data\npodman run -d -p 5000:5000 --name local-registry -v local-registry-data:\/var\/lib\/registry registry:2<\/pre>\n<p><\/code><\/p>\n<p>Burada <code>-v local-registry-data:\/var\/lib\/registry<\/code> komutu, <code>local-registry-data<\/code> ad\u0131nda bir Podman volume'unu konteyner i\u00e7indeki <code>\/var\/lib\/registry<\/code> dizinine ba\u011flar. B\u00f6ylece konteyner silinse bile imaj verileriniz volume'da kalmaya devam eder.<\/p>\n<h3>3. \u0130majlar\u0131 Yerel Kay\u0131t Defterine \u0130tme ve \u00c7ekme<\/h3>\n<p>Yerel kay\u0131t defterimiz haz\u0131r oldu\u011funa g\u00f6re, art\u0131k imajlar\u0131 bu kay\u0131t defterine itebilir ve \u00e7ekebiliriz. Bu, geli\u015ftirme ve test s\u00fcre\u00e7lerinizde b\u00fcy\u00fck esneklik sa\u011flar.<\/p>\n<h4>Mevcut Bir \u0130maj\u0131 \u00c7ekme ve Etiketleme<\/h4>\n<p>\u00d6ncelikle, uzak bir kay\u0131t defterinden bir imaj \u00e7ekelim ve onu yerel kay\u0131t defterimize uygun bir \u015fekilde etiketleyelim (tagging). \u00d6rne\u011fin, bir Nginx imaj\u0131 \u00e7ekelim:<\/p>\n<pre><code>podman pull nginx:latest<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi bu imaj\u0131 yerel kay\u0131t defterimize itebilmek i\u00e7in yeniden etiketlememiz gerekiyor. Etiketleme format\u0131 <code>[yerel_kay\u0131t_defteri_adresi]\/[imaj_ad\u0131]:[etiket]<\/code> \u015feklinde olmal\u0131d\u0131r:<\/p>\n<pre><code>podman tag nginx:latest localhost:5000\/my-nginx:1.0<\/pre>\n<p><\/code><\/p>\n<p><code>podman images<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak yeni etiketi g\u00f6rebilirsiniz.<\/p>\n<h4>\u0130maj\u0131 Yerel Kay\u0131t Defterine \u0130tme (Push)<\/h4>\n<p>Etiketledi\u011fimiz imaj\u0131 yerel kay\u0131t defterimize itmek i\u00e7in <code>podman push<\/code> komutunu kullan\u0131r\u0131z:<\/p>\n<pre><code>podman push localhost:5000\/my-nginx:1.0<\/pre>\n<p><\/code><\/p>\n<p>E\u011fer <code>registries.conf<\/code> dosyas\u0131n\u0131 do\u011fru yap\u0131land\u0131rd\u0131ysan\u0131z, imaj\u0131n\u0131z ba\u015far\u0131yla yerel kay\u0131t defterinize y\u00fcklenecektir.<\/p>\n<h4>\u0130maj\u0131 Yerel Kay\u0131t Defterinden \u00c7ekme (Pull)<\/h4>\n<p>Yerel kay\u0131t defterinize itti\u011finiz bir imaj\u0131 \u00e7ekmek de olduk\u00e7a basittir. \u00d6ncelikle yerel imaj\u0131 silerek test edelim:<\/p>\n<pre><code>podman rmi localhost:5000\/my-nginx:1.0\npodman rmi nginx:latest # Orijinal imaj\u0131 da silebilirsiniz<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi imaj\u0131 yerel kay\u0131t defterimizden \u00e7ekelim:<\/p>\n<pre><code>podman pull localhost:5000\/my-nginx:1.0<\/pre>\n<p><\/code><\/p>\n<p>\u0130maj\u0131n ba\u015far\u0131yla \u00e7ekildi\u011fini <code>podman images<\/code> komutuyla do\u011frulayabilirsiniz.<\/p>\n<h3>4. Podman \u0130majlar\u0131n\u0131 \u00d6zelle\u015ftirme: Dockerfile ile<\/h3>\n<p>\u00c7o\u011fu zaman, mevcut bir imaj\u0131 do\u011frudan kullanmak yerine, ihtiya\u00e7lar\u0131n\u0131za g\u00f6re \u00f6zelle\u015ftirmeniz gerekir. Dockerfile, imaj olu\u015fturma s\u00fcrecini otomatikle\u015ftiren ve tekrarlanabilir hale getiren metin tabanl\u0131 bir betiktir.<\/p>\n<h4>Dockerfile Temelleri ve Yap\u0131s\u0131<\/h4>\n<p>Dockerfile, ad\u0131m ad\u0131m komutlar\u0131 i\u00e7eren bir metin dosyas\u0131d\u0131r. Her komut, imaj\u0131n bir katman\u0131n\u0131 olu\u015fturur. Temel Dockerfile komutlar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>FROM<\/code>: Temel imaj\u0131 belirtir (\u00f6rne\u011fin, <code>FROM ubuntu:latest<\/code>).<\/li>\n<li><code>RUN<\/code>: \u0130maj olu\u015fturma s\u0131ras\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131lacak komutlar\u0131 belirtir (\u00f6rne\u011fin, paket y\u00fckleme).<\/li>\n<li><code>COPY<\/code>: Yerel dosyalar\u0131 imaja kopyalar.<\/li>\n<li><code>ADD<\/code>: Yerel dosyalar\u0131 veya URL'den dosyalar\u0131 imaja kopyalar ve ar\u015fivleri a\u00e7abilir.<\/li>\n<li><code>WORKDIR<\/code>: Sonraki komutlar i\u00e7in \u00e7al\u0131\u015fma dizinini ayarlar.<\/li>\n<li><code>EXPOSE<\/code>: Konteynerin hangi portlar\u0131 dinleyece\u011fini belirtir.<\/li>\n<li><code>ENV<\/code>: Ortam de\u011fi\u015fkenleri tan\u0131mlar.<\/li>\n<li><code>CMD<\/code>: Konteyner ba\u015flat\u0131ld\u0131\u011f\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131lacak varsay\u0131lan komutu belirtir.<\/li>\n<li><code>ENTRYPOINT<\/code>: Konteynerin ana y\u00fcr\u00fct\u00fclebilir dosyas\u0131n\u0131 belirtir.<\/li>\n<\/ul>\n<h4>\u00d6rnek Bir Dockerfile Olu\u015fturma ve \u0130maj\u0131 Derleme<\/h4>\n<p>Basit bir Python uygulamas\u0131n\u0131 i\u00e7eren bir imaj olu\u015ftural\u0131m. \u00d6ncelikle, projeniz i\u00e7in bir dizin olu\u015fturun ve i\u00e7ine <code>app.py<\/code> ve <code>Dockerfile<\/code> ad\u0131nda iki dosya ekleyin.<\/p>\n<p><strong>app.py:<\/strong><\/p>\n<pre><code class=\"language-python\"># app.py\nfrom flask import Flask\napp = Flask(__name__)\n\n@app.route('\/')\ndef hello():\n    return \"Merhaba, Podman ve \u00d6zelle\u015ftirilmi\u015f \u0130majlar D\u00fcnyas\u0131!\"\n\nif __name__ == '__main__':\n    app.run(host='0.0.0.0', port=8080)\n<\/pre>\n<p><\/code><\/p>\n<p><strong>Dockerfile:<\/strong><\/p>\n<pre><code># Dockerfile\nFROM python:3.9-slim-buster\n\nWORKDIR \/app\n\nCOPY requirements.txt .\nRUN pip install --no-cache-dir -r requirements.txt\n\nCOPY app.py .\n\nEXPOSE 8080\n\nCMD [\"python\", \"app.py\"]\n<\/pre>\n<p><\/code><\/p>\n<p><strong>requirements.txt:<\/strong><\/p>\n<pre><code>flask<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi bu Dockerfile'\u0131 kullanarak imaj\u0131 derleyelim. <code>Dockerfile<\/code>'\u0131n bulundu\u011fu dizinde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>podman build -t my-custom-app:1.0 .<\/pre>\n<p><\/code><\/p>\n<ul>\n<li><code>-t my-custom-app:1.0<\/code>: Olu\u015fturulan imaja <code>my-custom-app:1.0<\/code> etiketini verir.<\/li>\n<li><code>.<\/code>: Dockerfile'\u0131n ve ba\u011flam\u0131n (context) mevcut dizinde oldu\u011funu belirtir.<\/li>\n<\/ul>\n<p>\u0130maj\u0131n ba\u015far\u0131yla olu\u015fturuldu\u011funu <code>podman images<\/code> komutuyla kontrol edebilirsiniz.<\/p>\n<h4>\u00c7ok A\u015famal\u0131 Derlemeler (Multi-stage Builds)<\/h4>\n<p>B\u00fcy\u00fck uygulamalar i\u00e7in imaj boyutunu k\u00fc\u00e7\u00fcltmek ve g\u00fcvenlik risklerini azaltmak amac\u0131yla \u00e7ok a\u015famal\u0131 derlemeler kullanmak \u00f6nemlidir. Bu teknik, derleme ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 nihai \u00fcretim imaj\u0131na dahil etmeden, farkl\u0131 a\u015famalarda derleme ve \u00e7al\u0131\u015fma zaman\u0131 ortamlar\u0131n\u0131 ay\u0131rman\u0131za olanak tan\u0131r.<\/p>\n<p>\u00d6rnek olarak, bir React uygulamas\u0131n\u0131 derleyip sadece statik dosyalar\u0131n\u0131 Nginx ile sunan bir Dockerfile d\u00fc\u015f\u00fcnebilirsiniz. \u0130lk a\u015famada Node.js ile uygulama derlenir, ikinci a\u015famada ise sadece derlenmi\u015f statik dosyalar hafif bir Nginx imaj\u0131na kopyalan\u0131r.<\/p>\n<h3>5. \u00d6zelle\u015ftirilmi\u015f \u0130maj\u0131 Kay\u0131t Defterine Y\u00fckleme ve Kullanma<\/h3>\n<p>Olu\u015fturdu\u011fumuz \u00f6zelle\u015ftirilmi\u015f imaj\u0131 yerel kay\u0131t defterimize iterek, di\u011fer geli\u015ftiricilerin veya CI\/CD sistemlerinin bu imaja kolayca eri\u015fmesini sa\u011flayabiliriz.<\/p>\n<h4>\u00d6zelle\u015ftirilmi\u015f \u0130maj\u0131 Etiketleme ve \u0130tme<\/h4>\n<p>\u00d6nceki b\u00f6l\u00fcmde olu\u015fturdu\u011fumuz <code>my-custom-app:1.0<\/code> imaj\u0131n\u0131 yerel kay\u0131t defterimize itmek i\u00e7in etiketlememiz gerekiyor:<\/p>\n<pre><code>podman tag my-custom-app:1.0 localhost:5000\/my-custom-app:1.0<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi etiketlenmi\u015f imaj\u0131 yerel kay\u0131t defterine itebiliriz:<\/p>\n<pre><code>podman push localhost:5000\/my-custom-app:1.0<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, imaj\u0131n\u0131z\u0131 yerel kay\u0131t defterinize y\u00fckleyecektir. Art\u0131k bu imaj, a\u011f ba\u011flant\u0131s\u0131 olmadan bile yerel ortam\u0131n\u0131zda kullan\u0131labilir durumdad\u0131r.<\/p>\n<h4>Kay\u0131t Defterindeki \u0130maj\u0131 Kullanarak Konteyner \u00c7al\u0131\u015ft\u0131rma<\/h4>\n<p>Yerel kay\u0131t defterinizden bir imaj\u0131 \u00e7ekip bir konteyner olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>podman run -d -p 8080:8080 --name my-custom-web-app localhost:5000\/my-custom-app:1.0<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, yerel kay\u0131t defterinizdeki <code>my-custom-app:1.0<\/code> imaj\u0131n\u0131 kullanarak bir konteyner ba\u015flat\u0131r ve host makinenizin 8080 portunu konteynerin 8080 portuna e\u015fler. Taray\u0131c\u0131n\u0131zda <code>http:\/\/localhost:8080<\/code> adresine giderek uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<h3>6. G\u00fcvenlik ve En \u0130yi Uygulamalar<\/h3>\n<p>Yerel kay\u0131t defteri ve imaj \u00f6zelle\u015ftirme s\u00fcre\u00e7lerinde g\u00fcvenlik ve en iyi uygulamalar\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmak, daha sa\u011flam ve y\u00f6netilebilir bir ortam sa\u011flar.<\/p>\n<h4>HTTPS ile G\u00fcvenli Kay\u0131t Defteri<\/h4>\n<p>\u00dcretim ortamlar\u0131nda veya hassas verilerle \u00e7al\u0131\u015f\u0131rken yerel kay\u0131t defterinizi HTTP yerine HTTPS ile g\u00fcvence alt\u0131na alman\u0131z \u015fiddetle tavsiye edilir. Bu, ileti\u015fim \u015fifrelemesi sa\u011flar ve man-in-the-middle sald\u0131r\u0131lar\u0131n\u0131 \u00f6nler. Kendi imzal\u0131 sertifikalar (self-signed certificates) olu\u015fturarak veya bir sertifika yetkilisinden (CA) sertifika alarak HTTPS'i etkinle\u015ftirebilirsiniz. Bu kurulum biraz daha karma\u015f\u0131k olup sertifika y\u00f6netimi ve Podman'\u0131n g\u00fcvenilen sertifikalar\u0131 yap\u0131land\u0131rmas\u0131n\u0131 gerektirir.<\/p>\n<h4>\u0130maj G\u00fcvenli\u011fi ve Boyut Optimizasyonu<\/h4>\n<p>\u0130majlar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in her zaman g\u00fcvenilir temel imajlar kullan\u0131n, gereksiz paketleri ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 dahil etmeyin, hassas bilgileri (API anahtarlar\u0131, parolalar) imaj i\u00e7inde saklamay\u0131n ve imajlar\u0131 d\u00fczenli olarak g\u00fcncelleyin. \u00c7ok a\u015famal\u0131 derlemeler, imaj boyutunu k\u00fc\u00e7\u00fcltmek ve nihai imajda gereksiz derleme ara\u00e7lar\u0131n\u0131 b\u0131rakmamak i\u00e7in harika bir y\u00f6ntemdir.<\/p>\n<h4>Rootless Podman Kullan\u0131m\u0131<\/h4>\n<p>Podman'\u0131n en \u00f6nemli \u00f6zelliklerinden biri rootless (k\u00f6ks\u00fcz) modda \u00e7al\u0131\u015fabilmesidir. Bu, konteynerleri root ayr\u0131cal\u0131klar\u0131 olmadan \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131yarak g\u00fcvenlik risklerini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Rootless modda kay\u0131t defteri kurmak veya imajlar\u0131 \u00f6zelle\u015ftirmek i\u00e7in t\u00fcm Podman komutlar\u0131n\u0131 root kullan\u0131c\u0131s\u0131 olmadan \u00e7al\u0131\u015ft\u0131rabilirsiniz. Kay\u0131t defteri yap\u0131land\u0131rma dosyas\u0131 <code>$HOME\/.config\/containers\/registries.conf<\/code> yolunda bulunacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Podman kullanarak yerel bir kay\u0131t defterini nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, imajlar\u0131 nas\u0131l itip \u00e7ekece\u011finizi ve Dockerfile arac\u0131l\u0131\u011f\u0131yla Podman imajlar\u0131n\u0131 nas\u0131l \u00f6zelle\u015ftirece\u011finizi detayl\u0131 bir \u015fekilde \u00f6\u011frendiniz. Yerel bir kay\u0131t defteri, geli\u015ftirme ve test s\u00fcre\u00e7lerinizi h\u0131zland\u0131r\u0131rken, imaj \u00f6zelle\u015ftirme yetene\u011fi uygulamalar\u0131n\u0131z\u0131 spesifik ihtiya\u00e7lar\u0131n\u0131za g\u00f6re uyarlaman\u0131z\u0131 sa\u011flar. Podman'\u0131n daemon's\u0131z ve rootless mimarisi, bu i\u015flemleri daha g\u00fcvenli ve verimli hale getirir. Art\u0131k kendi konteyner tabanl\u0131 geli\u015ftirme ortam\u0131n\u0131z\u0131 daha etkin bir \u015fekilde y\u00f6netmek i\u00e7in gerekli bilgiye sahipsiniz.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>1. Podman yerine Docker kullanabilir miyim?<\/h4>\n<p>Evet, bu makalede anlat\u0131lan \u00e7o\u011fu kavram (yerel kay\u0131t defteri \u00e7al\u0131\u015ft\u0131rma, Dockerfile ile imaj \u00f6zelle\u015ftirme, imaj itme\/\u00e7ekme) Podman ile Docker aras\u0131nda b\u00fcy\u00fck \u00f6l\u00e7\u00fcde benzerdir. Komutlar genellikle ayn\u0131d\u0131r veya \u00e7ok k\u00fc\u00e7\u00fck farkl\u0131l\u0131klar g\u00f6sterir. \u00d6rne\u011fin, <code>podman build<\/code> yerine <code>docker build<\/code> kullanman\u0131z yeterlidir.<\/p>\n<h4>2. Yerel kay\u0131t defteri neden HTTPS kullanmal\u0131?<\/h4>\n<p>HTTPS, a\u011f \u00fczerinden iletilen verileri \u015fifreleyerek g\u00fcvenlik sa\u011flar. HTTP kullan\u0131ld\u0131\u011f\u0131nda, imajlar\u0131n\u0131z veya hassas verileriniz a\u011fda dinlenebilir veya de\u011fi\u015ftirilebilir. Geli\u015ftirme ortam\u0131nda HTTP genellikle kabul edilebilir olsa da, \u00fcretim veya hassas verilerin oldu\u011fu ortamlarda HTTPS kullanmak kritik \u00f6neme sahiptir.<\/p>\n<h4>3. Kay\u0131t defterindeki verilerim silinir mi?<\/h4>\n<p>E\u011fer kay\u0131t defteri konteynerini <code>-v<\/code> (volume) se\u00e7ene\u011fi olmadan \u00e7al\u0131\u015ft\u0131r\u0131rsan\u0131z, konteyner silindi\u011finde i\u00e7indeki t\u00fcm imaj verileri de silinir. Verilerin kal\u0131c\u0131 olmas\u0131 i\u00e7in <code>podman volume create<\/code> komutuyla bir volume olu\u015fturup bu volume'u kay\u0131t defteri konteynerine ba\u011flaman\u0131z gerekir.<\/p>\n<h4>4. \u00d6zelle\u015ftirilmi\u015f imajlar\u0131m\u0131n boyutunu nas\u0131l k\u00fc\u00e7\u00fcltebilirim?<\/h4>\n<p>\u0130maj boyutunu k\u00fc\u00e7\u00fcltmek i\u00e7in \u015funlar\u0131 yapabilirsiniz: daha k\u00fc\u00e7\u00fck temel imajlar kullan\u0131n (\u00f6rne\u011fin, <code>alpine<\/code> veya <code>slim<\/code> etiketli imajlar), \u00e7ok a\u015famal\u0131 derlemeler kullan\u0131n, gereksiz paketleri ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 derleme sonras\u0131 kald\u0131r\u0131n, <code>.dockerignore<\/code> dosyas\u0131 ile gereksiz dosyalar\u0131n imaja kopyalanmas\u0131n\u0131 engelleyin ve <code>RUN<\/code> komutlar\u0131n\u0131 zincirleyerek katman say\u0131s\u0131n\u0131 azalt\u0131n.<\/p>\n<h4>5. Podman rootless modda \u00e7al\u0131\u015f\u0131r m\u0131 ve bu ne anlama gelir?<\/h4>\n<p>Evet, Podman rootless (k\u00f6ks\u00fcz) modda \u00e7al\u0131\u015fabilir. Bu, konteynerleri root ayr\u0131cal\u0131klar\u0131 olmadan, standart bir kullan\u0131c\u0131 olarak \u00e7al\u0131\u015ft\u0131rabilece\u011finiz anlam\u0131na gelir. Bu, g\u00fcvenlik a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck bir avantajd\u0131r \u00e7\u00fcnk\u00fc bir konteynerden ka\u00e7\u0131\u015f durumunda, sald\u0131rgan\u0131n elde edece\u011fi ayr\u0131cal\u0131klar s\u0131n\u0131rl\u0131 olacakt\u0131r. Rootless modda \u00e7al\u0131\u015f\u0131rken yap\u0131land\u0131rma dosyalar\u0131 genellikle kullan\u0131c\u0131n\u0131n ev dizinindeki <code>$HOME\/.config\/containers\/<\/code> alt\u0131nda bulunur.<\/p>\n","protected":false},"excerpt":{"rendered":"G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde konteyner teknolojileri, uygulamalar\u0131n tutarl\u0131, ta\u015f\u0131nabilir ve izole bir \u015fekilde \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131&#8230;","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":[1],"tags":[],"class_list":{"0":"post-39532","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi - 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\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi\" \/>\n<meta property=\"og:description\" content=\"G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde konteyner teknolojileri, uygulamalar\u0131n tutarl\u0131, ta\u015f\u0131nabilir ve izole bir \u015fekilde \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-23T11:30:39+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=\"12 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi\",\"datePublished\":\"2026-02-23T11:30:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/\"},\"wordCount\":2066,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/\",\"name\":\"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-23T11:30:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi\"}]},{\"@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":"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi - 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\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/","og_locale":"tr_TR","og_type":"article","og_title":"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi","og_description":"G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde konteyner teknolojileri, uygulamalar\u0131n tutarl\u0131, ta\u015f\u0131nabilir ve izole bir \u015fekilde \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131...","og_url":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-23T11:30:39+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"12 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi","datePublished":"2026-02-23T11:30:39+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/"},"wordCount":2066,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/","url":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/","name":"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-23T11:30:39+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/yerel-podman-kayit-defteri-kurulumu-ve-podman-imajlarinin-ozellestirilmesi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Yerel Podman Kay\u0131t Defteri Kurulumu ve Podman \u0130majlar\u0131n\u0131n \u00d6zelle\u015ftirilmesi"}]},{"@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\/39532","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=39532"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39532\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}