{"id":39215,"date":"2026-02-16T19:30:35","date_gmt":"2026-02-16T16:30:35","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/"},"modified":"2026-02-16T19:30:35","modified_gmt":"2026-02-16T16:30:35","slug":"docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/","title":{"rendered":"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma Rehberi"},"content":{"rendered":"<h2>Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma Rehberi<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, uygulamalar\u0131n h\u0131zl\u0131 ve tutarl\u0131 bir \u015fekilde da\u011f\u0131t\u0131lmas\u0131 kritik \u00f6neme sahiptir. \u00d6zellikle birden fazla bile\u015fenden olu\u015fan tam y\u0131\u011f\u0131n (full-stack) uygulamalar i\u00e7in bu durum daha da karma\u015f\u0131k hale gelebilir. Bu makalede, bir ebeveyn kay\u0131t portal\u0131 \u00f6rne\u011fi \u00fczerinden, Docker kullanarak tam y\u0131\u011f\u0131n bir uygulamay\u0131 nas\u0131l konteynerize edece\u011fimizi ad\u0131m ad\u0131m inceleyece\u011fiz. Frontend, backend ve veritaban\u0131 katmanlar\u0131n\u0131 izole edilmi\u015f Docker konteynerlerinde \u00e7al\u0131\u015ft\u0131rarak, geli\u015ftirme, test ve \u00fcretim ortamlar\u0131 aras\u0131nda tutarl\u0131l\u0131\u011f\u0131 nas\u0131l sa\u011flayaca\u011f\u0131m\u0131z\u0131 ke\u015ffedeceksiniz.<\/p>\n<h3>Konteynerle\u015fmenin Temelleri ve Neden Docker?<\/h3>\n<p>Modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kar\u015f\u0131la\u015f\u0131lan en b\u00fcy\u00fck zorluklardan biri, &#8220;benim makinemde \u00e7al\u0131\u015f\u0131yor&#8221; sendromudur. Geli\u015ftiricinin ortam\u0131nda sorunsuz \u00e7al\u0131\u015fan bir uygulama, farkl\u0131 bir sunucuda veya ortamda beklenmedik hatalar verebilir. \u0130\u015fte tam da bu noktada konteynerle\u015fme devreye girer.<\/p>\n<h4>Geleneksel Da\u011f\u0131t\u0131m Yakla\u015f\u0131mlar\u0131n\u0131n Zorluklar\u0131<\/h4>\n<ul>\n<li><b>Ortam Tutars\u0131zl\u0131klar\u0131:<\/b> Farkl\u0131 i\u015fletim sistemleri, k\u00fct\u00fcphane versiyonlar\u0131 veya ba\u011f\u0131ml\u0131l\u0131klar nedeniyle olu\u015fan hatalar.<\/li>\n<li><b>Kaynak \u00c7at\u0131\u015fmalar\u0131:<\/b> Ayn\u0131 sunucu \u00fczerinde birden fazla uygulaman\u0131n farkl\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131 \u00e7ak\u0131\u015fabilir.<\/li>\n<li><b>Yava\u015f Da\u011f\u0131t\u0131m S\u00fcre\u00e7leri:<\/b> Uygulaman\u0131n t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 manuel olarak kurmak ve yap\u0131land\u0131rmak zaman al\u0131c\u0131d\u0131r.<\/li>\n<li><b>\u00d6l\u00e7eklenebilirlik Sorunlar\u0131:<\/b> Uygulaman\u0131n belirli bir bile\u015fenini ba\u011f\u0131ms\u0131z olarak \u00f6l\u00e7eklendirmek zordur.<\/li>\n<\/ul>\n<h4>Docker Nedir ve Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h4>\n<p>Docker, uygulamalar\u0131 ve t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (kod, \u00e7al\u0131\u015fma zaman\u0131, sistem ara\u00e7lar\u0131, k\u00fct\u00fcphaneler vb.) tek bir izole edilmi\u015f pakette, yani &#8220;konteyner&#8221; i\u00e7inde \u00e7al\u0131\u015ft\u0131rmay\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir platformdur. Sanal makinelerden farkl\u0131 olarak, Docker konteynerleri ana bilgisayar\u0131n i\u015fletim sistemi \u00e7ekirde\u011fini payla\u015f\u0131r, bu da onlar\u0131 daha hafif ve daha h\u0131zl\u0131 hale getirir.<\/p>\n<p>Bir Docker konteyneri, bir Docker imaj\u0131ndan olu\u015fturulur. Docker imaj\u0131, uygulaman\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli her \u015feyi i\u00e7eren statik, salt okunur bir \u015fablondur. Bu imajlar, <code>Dockerfile<\/code> ad\u0131 verilen metin dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla tan\u0131mlan\u0131r.<\/p>\n<h4>Konteynerle\u015fmenin Avantajlar\u0131<\/h4>\n<ul>\n<li><b>\u0130zolasyon:<\/b> Her uygulama kendi konteynerinde izole edilmi\u015f bir ortamda \u00e7al\u0131\u015f\u0131r, bu da \u00e7ak\u0131\u015fmalar\u0131 \u00f6nler.<\/li>\n<li><b>Ta\u015f\u0131nabilirlik:<\/b> Bir konteyner imaj\u0131, herhangi bir Docker kurulu sistemde ayn\u0131 \u015fekilde \u00e7al\u0131\u015f\u0131r. &#8220;Bir kez in\u015fa et, her yerde \u00e7al\u0131\u015ft\u0131r&#8221; felsefesi.<\/li>\n<li><b>Tutarl\u0131l\u0131k:<\/b> Geli\u015ftirme, test ve \u00fcretim ortamlar\u0131 aras\u0131nda tam bir tutarl\u0131l\u0131k sa\u011flar.<\/li>\n<li><b>H\u0131zl\u0131 Da\u011f\u0131t\u0131m:<\/b> Uygulama ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 tek bir pakette oldu\u011fu i\u00e7in da\u011f\u0131t\u0131m s\u00fcre\u00e7leri h\u0131zlan\u0131r.<\/li>\n<li><b>Kaynak Verimlili\u011fi:<\/b> Sanal makinelere g\u00f6re daha az kaynak t\u00fcketir.<\/li>\n<li><b>\u00d6l\u00e7eklenebilirlik:<\/b> \u0130htiya\u00e7 duyulan bile\u015fenlerin kolayca \u00e7o\u011falt\u0131lmas\u0131na olanak tan\u0131r.<\/li>\n<\/ul>\n<h3>Ebeveyn Kay\u0131t Portal\u0131 Mimarisi (\u00d6rnek Uygulama)<\/h3>\n<p>\u00d6rnek ebeveyn kay\u0131t portal\u0131m\u0131z, modern tam y\u0131\u011f\u0131n uygulamalar\u0131n tipik bir temsilcisidir. Bu portal, ebeveynlerin \u00e7ocuklar\u0131n\u0131 okul veya etkinlikler i\u00e7in kaydettirmelerine olanak tan\u0131yan basit bir aray\u00fcze sahip olacakt\u0131r.<\/p>\n<h4>Uygulama Katmanlar\u0131<\/h4>\n<p>Uygulamam\u0131z \u00fc\u00e7 ana katmandan olu\u015facakt\u0131r:<\/p>\n<ol>\n<li><b>Frontend (Kullan\u0131c\u0131 Aray\u00fcz\u00fc):<\/b> Ebeveynlerin kay\u0131t formlar\u0131n\u0131 dolduraca\u011f\u0131 ve bilgileri g\u00f6r\u00fcnt\u00fcleyece\u011fi web aray\u00fcz\u00fc.<\/li>\n<li><b>Backend (API Sunucusu):<\/b> Frontend&#8217;den gelen istekleri i\u015fleyen, veritaban\u0131 ile ileti\u015fim kuran ve i\u015f mant\u0131\u011f\u0131n\u0131 i\u00e7eren API.<\/li>\n<li><b>Veritaban\u0131:<\/b> Ebeveyn ve \u00e7ocuk kay\u0131t bilgilerini kal\u0131c\u0131 olarak depolayan veri depolama katman\u0131.<\/li>\n<\/ol>\n<h4>Kullan\u0131lacak Teknolojiler<\/h4>\n<p>Bu rehberde, pop\u00fcler ve modern teknolojileri kullanarak bir \u00f6rnek olu\u015fturaca\u011f\u0131z:<\/p>\n<ul>\n<li><b>Frontend:<\/b> React (<code>create-react-app<\/code> ile olu\u015fturulmu\u015f)<\/li>\n<li><b>Backend:<\/b> Node.js (Express.js \u00e7at\u0131s\u0131 ile)<\/li>\n<li><b>Veritaban\u0131:<\/b> PostgreSQL<\/li>\n<\/ul>\n<h4>Neden Bu Mimarinin Konteynerle\u015fmesi \u00d6nemli?<\/h4>\n<p>Her bir katman\u0131n farkl\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131, \u00e7al\u0131\u015fma zamanlar\u0131 ve konfig\u00fcrasyonlar\u0131 vard\u0131r. Frontend bir Node.js ortam\u0131nda derlenip statik dosyalar olarak servis edilirken, backend kendi Node.js \u00e7al\u0131\u015fma zaman\u0131na ihtiya\u00e7 duyar ve veritaban\u0131 tamamen ayr\u0131 bir s\u00fcre\u00e7tir. Bu katmanlar\u0131 ayr\u0131 ayr\u0131 konteynerize etmek, her bir bile\u015fenin ba\u011f\u0131ms\u0131z olarak geli\u015ftirilmesine, test edilmesine ve \u00f6l\u00e7eklendirilmesine olanak tan\u0131r. Ayr\u0131ca, farkl\u0131 geli\u015ftiricilerin farkl\u0131 teknolojilerle \u00e7al\u0131\u015fmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<h3>Frontend Uygulamas\u0131n\u0131 Dockerla\u015ft\u0131rma<\/h3>\n<p>React tabanl\u0131 frontend uygulamam\u0131z\u0131 Dockerize etmek, uygulaman\u0131n derlenmesini ve ard\u0131ndan statik dosyalar\u0131n\u0131n bir web sunucusu (\u00f6rne\u011fin Nginx) arac\u0131l\u0131\u011f\u0131yla servis edilmesini i\u00e7erir.<\/p>\n<h4><code>Dockerfile<\/code> Olu\u015fturma (React + Nginx)<\/h4>\n<p>Uygulaman\u0131z\u0131n k\u00f6k dizininde <code>Dockerfile<\/code> ad\u0131nda bir dosya olu\u015fturun:<\/p>\n<pre><code class=\"language-dockerfile\">\n# A\u015fama 1: Uygulamay\u0131 derle\nFROM node:18-alpine AS builder\n\nWORKDIR \/app\n\nCOPY package.json .\/\nCOPY package-lock.json .\/\nRUN npm install\n\nCOPY . .\/\nRUN npm run build\n\n# A\u015fama 2: Derlenmi\u015f dosyalar\u0131 Nginx ile servis et\nFROM nginx:alpine\n\nCOPY --from=builder \/app\/build \/usr\/share\/nginx\/html\n\nEXPOSE 80\n\nCMD [\"nginx\", \"-g\", \"daemon off;\"]\n<\/pre>\n<p><\/code><\/p>\n<p>Bu <code>Dockerfile<\/code> iki a\u015famal\u0131 bir yap\u0131 kullan\u0131r (multi-stage build):<\/p>\n<ul>\n<li>\u0130lk a\u015famada (<code>builder<\/code>), Node.js ortam\u0131nda uygulaman\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131 kurulur ve \u00fcretim i\u00e7in derlenir.<\/li>\n<li>\u0130kinci a\u015famada, sadece derlenmi\u015f statik dosyalar hafif bir Nginx imaj\u0131na kopyalan\u0131r. Bu, nihai imaj boyutunu \u00f6nemli \u00f6l\u00e7\u00fcde k\u00fc\u00e7\u00fclt\u00fcr.<\/li>\n<\/ul>\n<h4><code>docker build<\/code> ve <code>docker run<\/code> Komutlar\u0131<\/h4>\n<p>Uygulaman\u0131z\u0131 derlemek ve bir Docker imaj\u0131 olu\u015fturmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">\ndocker build -t ebeveyn-portal-frontend .\n<\/pre>\n<p><\/code><\/p>\n<p>\u0130maj\u0131 olu\u015fturduktan sonra, bir konteyner olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">\ndocker run -p 3000:80 --name ebeveyn-frontend ebeveyn-portal-frontend\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, yerel makinenizin 3000 numaral\u0131 portunu konteynerin 80 numaral\u0131 portuna e\u015fler. Art\u0131k taray\u0131c\u0131n\u0131zdan <code>http:\/\/localhost:3000<\/code> adresine giderek frontend uygulaman\u0131za eri\u015febilirsiniz.<\/p>\n<h3>Backend Uygulamas\u0131n\u0131 Dockerla\u015ft\u0131rma<\/h3>\n<p>Node.js tabanl\u0131 backend uygulamam\u0131z\u0131 Dockerize etmek, uygulaman\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 kurmay\u0131 ve Node.js \u00e7al\u0131\u015fma zaman\u0131nda ba\u015flatmay\u0131 i\u00e7erir.<\/p>\n<h4><code>Dockerfile<\/code> Olu\u015fturma (Node.js + Express)<\/h4>\n<p>Backend uygulaman\u0131z\u0131n k\u00f6k dizininde <code>Dockerfile<\/code> ad\u0131nda bir dosya olu\u015fturun:<\/p>\n<pre><code class=\"language-dockerfile\">\nFROM node:18-alpine\n\nWORKDIR \/app\n\nCOPY package.json .\/\nCOPY package-lock.json .\/\nRUN npm install\n\nCOPY . .\n\nEXPOSE 5000\n\nCMD [\"npm\", \"start\"]\n<\/pre>\n<p><\/code><\/p>\n<p>Bu <code>Dockerfile<\/code>:<\/p>\n<ul>\n<li><code>node:18-alpine<\/code> temel imaj\u0131n\u0131 kullan\u0131r (hafif bir Node.js imaj\u0131).<\/li>\n<li>\u00c7al\u0131\u015fma dizinini <code>\/app<\/code> olarak ayarlar.<\/li>\n<li><code>package.json<\/code> ve <code>package-lock.json<\/code> dosyalar\u0131n\u0131 kopyalar ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 kurar. Bu, dosya de\u011fi\u015fikliklerinde ba\u011f\u0131ml\u0131l\u0131klar\u0131n tekrar indirilmesini \u00f6nleyerek katmanl\u0131 cache'den faydalan\u0131r.<\/li>\n<li>Uygulama kodunu kopyalar.<\/li>\n<li>Uygulaman\u0131n dinleyece\u011fi 5000 numaral\u0131 portu a\u00e7ar.<\/li>\n<li>Uygulamay\u0131 <code>npm start<\/code> komutuyla ba\u015flat\u0131r.<\/li>\n<\/ul>\n<h4>Ba\u011f\u0131ml\u0131l\u0131k Y\u00f6netimi ve Katmanl\u0131 Cache<\/h4>\n<p>Yukar\u0131daki <code>Dockerfile<\/code>'da <code>package.json<\/code> ve <code>package-lock.json<\/code> dosyalar\u0131n\u0131 uygulaman\u0131n geri kalan\u0131ndan \u00f6nce kopyalay\u0131p <code>npm install<\/code> \u00e7al\u0131\u015ft\u0131rmam\u0131z\u0131n nedeni, Docker'\u0131n katmanl\u0131 imaj yap\u0131s\u0131ndan faydalanmakt\u0131r. E\u011fer bu dosyalar de\u011fi\u015fmezse, <code>npm install<\/code> katman\u0131 yeniden in\u015fa edilmez, bu da imaj olu\u015fturma s\u00fcresini h\u0131zland\u0131r\u0131r.<\/p>\n<h4>Ortam De\u011fi\u015fkenleri ile Konfig\u00fcrasyon<\/h4>\n<p>Backend uygulamalar\u0131 genellikle veritaban\u0131 ba\u011flant\u0131 bilgileri, API anahtarlar\u0131 gibi hassas bilgileri ortam de\u011fi\u015fkenleri arac\u0131l\u0131\u011f\u0131yla al\u0131r. Docker konteynerlerini \u00e7al\u0131\u015ft\u0131r\u0131rken bu de\u011fi\u015fkenleri kolayca sa\u011flayabiliriz:<\/p>\n<pre><code class=\"language-bash\">\ndocker build -t ebeveyn-portal-backend .\ndocker run -p 5000:5000 \\\n           -e DATABASE_URL=\"postgresql:\/\/user:password@host:port\/database\" \\\n           --name ebeveyn-backend ebeveyn-portal-backend\n<\/pre>\n<p><\/code><\/p>\n<p><code>-e<\/code> bayra\u011f\u0131 ile ortam de\u011fi\u015fkenlerini ayarlayabilirsiniz. Daha sonra Docker Compose ile bu s\u00fcreci daha da basitle\u015ftirece\u011fiz.<\/p>\n<h3>Veritaban\u0131n\u0131 Docker ile Y\u00f6netme<\/h3>\n<p>Uygulamam\u0131z\u0131n veri katman\u0131 olan PostgreSQL'i Docker konteynerinde \u00e7al\u0131\u015ft\u0131rmak, kurulum ve y\u00f6netim karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 ortadan kald\u0131r\u0131r.<\/p>\n<h4>Veritaban\u0131 Konteynerini Ba\u015flatma (PostgreSQL)<\/h4>\n<p>PostgreSQL i\u00e7in ayr\u0131 bir <code>Dockerfile<\/code> yazmaya genellikle gerek yoktur, \u00e7\u00fcnk\u00fc Docker Hub'da resmi PostgreSQL imajlar\u0131 mevcuttur. Do\u011frudan <code>docker run<\/code> komutuyla bir PostgreSQL konteyneri ba\u015flatabiliriz:<\/p>\n<pre><code class=\"language-bash\">\ndocker run --name ebeveyn-db \\\n           -e POSTGRES_USER=admin \\\n           -e POSTGRES_PASSWORD=secret \\\n           -e POSTGRES_DB=ebeveyn_kayit \\\n           -p 5432:5432 \\\n           -d postgres:14-alpine\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut:<\/p>\n<ul>\n<li><code>ebeveyn-db<\/code> ad\u0131nda bir konteyner olu\u015fturur.<\/li>\n<li>Ortam de\u011fi\u015fkenleri (kullan\u0131c\u0131 ad\u0131, \u015fifre, veritaban\u0131 ad\u0131) ile PostgreSQL'i yap\u0131land\u0131r\u0131r.<\/li>\n<li>Yerel makinenizin 5432 portunu konteynerin 5432 portuna e\u015fler.<\/li>\n<li><code>-d<\/code> bayra\u011f\u0131 ile konteyneri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r.<\/li>\n<li><code>postgres:14-alpine<\/code> imaj\u0131n\u0131 kullan\u0131r (hafif bir PostgreSQL s\u00fcr\u00fcm\u00fc).<\/li>\n<\/ul>\n<h4>Kal\u0131c\u0131 Veri Saklama: Docker Volume'lar<\/h4>\n<p>Yukar\u0131daki komutla ba\u015flatt\u0131\u011f\u0131m\u0131z veritaban\u0131 konteyneri durduruldu\u011funda veya silindi\u011finde, i\u00e7indeki t\u00fcm veriler kaybolacakt\u0131r. Verilerin kal\u0131c\u0131 olmas\u0131 i\u00e7in Docker Volume'lar\u0131 kullanmal\u0131y\u0131z.<\/p>\n<pre><code class=\"language-bash\">\ndocker volume create ebeveyn-db-data\n\ndocker run --name ebeveyn-db \\\n           -e POSTGRES_USER=admin \\\n           -e POSTGRES_PASSWORD=secret \\\n           -e POSTGRES_DB=ebeveyn_kayit \\\n           -p 5432:5432 \\\n           -v ebeveyn-db-data:\/var\/lib\/postgresql\/data \\\n           -d postgres:14-alpine\n<\/pre>\n<p><\/code><\/p>\n<p><code>-v ebeveyn-db-data:\/var\/lib\/postgresql\/data<\/code> bayra\u011f\u0131, <code>ebeveyn-db-data<\/code> ad\u0131nda bir Docker volume'unu PostgreSQL'in veri dizinine ba\u011flar. Bu sayede konteyner silinse bile verileriniz g\u00fcvende kal\u0131r.<\/p>\n<h3>Docker Compose ile \u00c7ok Katmanl\u0131 Uygulama Y\u00f6netimi<\/h3>\n<p>\u00dc\u00e7 ayr\u0131 konteyneri (frontend, backend, veritaban\u0131) manuel olarak y\u00f6netmek karma\u015f\u0131k ve hataya a\u00e7\u0131k olabilir. Docker Compose, \u00e7oklu konteyner Docker uygulamalar\u0131n\u0131 tan\u0131mlamak ve \u00e7al\u0131\u015ft\u0131rmak i\u00e7in bir ara\u00e7t\u0131r. Tek bir YAML dosyas\u0131 kullanarak t\u00fcm servislerinizi yap\u0131land\u0131rabilir ve tek bir komutla ba\u015flat\u0131p durdurabilirsiniz.<\/p>\n<h4><code>docker-compose.yml<\/code> Dosyas\u0131 Olu\u015fturma<\/h4>\n<p>Uygulaman\u0131z\u0131n k\u00f6k dizininde <code>docker-compose.yml<\/code> ad\u0131nda bir dosya olu\u015fturun:<\/p>\n<pre><code class=\"language-yaml\">\nversion: '3.8'\n\nservices:\n  frontend:\n    build:\n      context: .\/frontend # Frontend uygulamas\u0131n\u0131n oldu\u011fu dizin\n      dockerfile: Dockerfile\n    ports:\n      - \"3000:80\"\n    depends_on:\n      - backend\n    networks:\n      - ebeveyn-network\n\n  backend:\n    build:\n      context: .\/backend # Backend uygulamas\u0131n\u0131n oldu\u011fu dizin\n      dockerfile: Dockerfile\n    ports:\n      - \"5000:5000\"\n    environment:\n      DATABASE_URL: postgresql:\/\/admin:secret@db:5432\/ebeveyn_kayit\n    depends_on:\n      - db\n    networks:\n      - ebeveyn-network\n\n  db:\n    image: postgres:14-alpine\n    environment:\n      POSTGRES_USER: admin\n      POSTGRES_PASSWORD: secret\n      POSTGRES_DB: ebeveyn_kayit\n    volumes:\n      - ebeveyn-db-data:\/var\/lib\/postgresql\/data\n    networks:\n      - ebeveyn-network\n\nvolumes:\n  ebeveyn-db-data:\n\nnetworks:\n  ebeveyn-network:\n    driver: bridge\n<\/pre>\n<p><\/code><\/p>\n<p>Bu dosya:<\/p>\n<ul>\n<li><code>frontend<\/code>, <code>backend<\/code> ve <code>db<\/code> ad\u0131nda \u00fc\u00e7 servis tan\u0131mlar.<\/li>\n<li>Her servisin nas\u0131l in\u015fa edilece\u011fini (<code>build<\/code>) veya hangi imaj\u0131 kullanaca\u011f\u0131n\u0131 (<code>image<\/code>) belirtir.<\/li>\n<li>Port e\u015flemelerini (<code>ports<\/code>) yapar.<\/li>\n<li><code>environment<\/code> anahtar kelimesi ile ortam de\u011fi\u015fkenlerini ayarlar (backend'in veritaban\u0131na ba\u011flanmas\u0131 i\u00e7in).<\/li>\n<li><code>depends_on<\/code> ile servisler aras\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131 tan\u0131mlar (backend db'ye, frontend backend'e ba\u011fl\u0131d\u0131r).<\/li>\n<li><code>volumes<\/code> ile veritaban\u0131 i\u00e7in kal\u0131c\u0131 depolama sa\u011flar.<\/li>\n<li>T\u00fcm servislerin birbirleriyle ileti\u015fim kurabilmesi i\u00e7in <code>ebeveyn-network<\/code> ad\u0131nda \u00f6zel bir a\u011f olu\u015fturur.<\/li>\n<\/ul>\n<h4>Servisler Aras\u0131 A\u011f \u0130leti\u015fimi<\/h4>\n<p>Docker Compose, ayn\u0131 <code>docker-compose.yml<\/code> dosyas\u0131nda tan\u0131mlanan servisler aras\u0131nda otomatik olarak bir a\u011f olu\u015fturur. Bu a\u011f sayesinde servisler birbirlerine isimleriyle eri\u015febilirler. \u00d6rne\u011fin, backend uygulamas\u0131 veritaban\u0131na <code>db<\/code> hostname'i \u00fczerinden eri\u015febilir (<code>postgresql:\/\/admin:secret@db:5432\/ebeveyn_kayit<\/code>).<\/p>\n<h4>Uygulamay\u0131 Tek Komutla Ba\u015flatma ve Durdurma<\/h4>\n<p>T\u00fcm uygulamay\u0131 ba\u015flatmak i\u00e7in, <code>docker-compose.yml<\/code> dosyas\u0131n\u0131n bulundu\u011fu dizinde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">\ndocker compose up -d\n<\/pre>\n<p><\/code><\/p>\n<p><code>-d<\/code> bayra\u011f\u0131, servisleri arka planda ba\u015flat\u0131r. Uygulaman\u0131z\u0131 durdurmak ve t\u00fcm konteynerleri kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">\ndocker compose down\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komutlar, geli\u015ftirme s\u00fcrecinizi inan\u0131lmaz derecede h\u0131zland\u0131r\u0131r ve t\u00fcm ekibin ayn\u0131 ortamda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Konteynerize Uygulaman\u0131n Avantajlar\u0131 ve Sonraki Ad\u0131mlar<\/h3>\n<p>Ebeveyn kay\u0131t portal\u0131m\u0131z\u0131 Docker ile konteynerize ederek \u00f6nemli avantajlar elde ettik. Ancak yolculuk burada bitmiyor.<\/p>\n<h4>\u00d6l\u00e7eklenebilirlik ve Y\u00fcksek Eri\u015filebilirlik<\/h4>\n<p>Docker Compose ile uygulamay\u0131 kolayca \u00e7al\u0131\u015ft\u0131rabiliriz, ancak \u00fcretim ortam\u0131nda daha geli\u015fmi\u015f orkestrasyon ara\u00e7lar\u0131na ihtiya\u00e7 duyar\u0131z. Kubernetes gibi platformlar, konteynerize edilmi\u015f uygulamalar\u0131 otomatik olarak \u00f6l\u00e7eklendirme, y\u00fck dengeleme ve kendi kendini iyile\u015ftirme yetenekleri sunar. \u0130htiya\u00e7 duyulan backend servislerinin say\u0131s\u0131n\u0131 art\u0131rmak veya azaltmak, Kubernetes ile kolayca y\u00f6netilebilir.<\/p>\n<h4>CI\/CD S\u00fcre\u00e7lerine Entegrasyon<\/h4>\n<p>Konteynerle\u015fme, S\u00fcrekli Entegrasyon\/S\u00fcrekli Da\u011f\u0131t\u0131m (CI\/CD) boru hatlar\u0131n\u0131n temelini olu\u015fturur. Her kod de\u011fi\u015fikli\u011finde otomatik olarak Docker imajlar\u0131 olu\u015fturulabilir, test edilebilir ve da\u011f\u0131t\u0131m ortamlar\u0131na g\u00f6nderilebilir. Bu, yaz\u0131l\u0131m teslimat\u0131n\u0131 h\u0131zland\u0131r\u0131r ve insan hatas\u0131n\u0131 minimize eder.<\/p>\n<h4>\u00dcretim Ortam\u0131na Da\u011f\u0131t\u0131m (Kubernetes'e Giri\u015f)<\/h4>\n<p>K\u00fc\u00e7\u00fck \u00f6l\u00e7ekli projeler i\u00e7in Docker Compose yeterli olabilirken, b\u00fcy\u00fck ve karma\u015f\u0131k \u00fcretim ortamlar\u0131nda Kubernetes veya Docker Swarm gibi konteyner orkestrasyon ara\u00e7lar\u0131 vazge\u00e7ilmezdir. Bu ara\u00e7lar, konteynerlerin ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc y\u00f6netir, hata tolerans\u0131 sa\u011flar ve uygulaman\u0131z\u0131n y\u00fcksek eri\u015filebilirli\u011fini garanti eder.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, bir ebeveyn kay\u0131t portal\u0131 \u00f6rne\u011fi \u00fczerinden tam y\u0131\u011f\u0131n bir uygulaman\u0131n Docker ile nas\u0131l konteynerize edilece\u011fini detayl\u0131 bir \u015fekilde inceledik. Frontend, backend ve veritaban\u0131 katmanlar\u0131n\u0131 ayr\u0131 Docker konteynerlerinde \u00e7al\u0131\u015ft\u0131rarak, geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerimizi basitle\u015ftirdik, ortam tutars\u0131zl\u0131klar\u0131n\u0131 ortadan kald\u0131rd\u0131k ve uygulaman\u0131n ta\u015f\u0131nabilirli\u011fini art\u0131rd\u0131k. Docker Compose ile t\u00fcm servisleri tek bir komutla y\u00f6netme yetene\u011fi, geli\u015ftirici deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirmektedir. Konteynerle\u015fme, modern yaz\u0131l\u0131m geli\u015ftirmenin vazge\u00e7ilmez bir par\u00e7as\u0131 olup, uygulamalar\u0131n\u0131z\u0131 daha esnek, \u00f6l\u00e7eklenebilir ve y\u00f6netilebilir hale getirmenin anahtar\u0131d\u0131r. Bu rehberdeki ad\u0131mlar\u0131 takip ederek kendi tam y\u0131\u011f\u0131n uygulamalar\u0131n\u0131z\u0131 Dockerla\u015ft\u0131rmaya ba\u015flayabilir ve konteyner teknolojisinin sundu\u011fu avantajlardan faydalanabilirsiniz.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>Docker image boyutunu nas\u0131l k\u00fc\u00e7\u00fcltebilirim?<\/h4>\n<p>\u0130maj boyutunu k\u00fc\u00e7\u00fcltmek i\u00e7in multi-stage build (\u00e7ok a\u015famal\u0131 derleme) kullan\u0131n, gereksiz ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve dosyalar\u0131 imaja dahil etmeyin, daha k\u00fc\u00e7\u00fck temel imajlar (\u00f6rne\u011fin <code>alpine<\/code> versiyonlar\u0131) kullan\u0131n ve <code>.dockerignore<\/code> dosyas\u0131 ile gereksiz dosyalar\u0131 kopyalamay\u0131 engelleyin.<\/p>\n<h4>Docker volume'lar ne i\u015fe yarar?<\/h4>\n<p>Docker volume'lar, konteynerlerin d\u0131\u015f\u0131ndaki verileri kal\u0131c\u0131 olarak depolamak i\u00e7in kullan\u0131l\u0131r. Konteyner silinse bile volume'daki veriler korunur. \u00d6zellikle veritabanlar\u0131 gibi kal\u0131c\u0131 veri gerektiren uygulamalar i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h4>Docker Compose yerine Kubernetes ne zaman kullanmal\u0131y\u0131m?<\/h4>\n<p>Docker Compose, genellikle tek bir makinede \u00e7al\u0131\u015fan \u00e7oklu konteyner uygulamalar\u0131n\u0131 geli\u015ftirme ve test etme i\u00e7in idealdir. \u00dcretim ortam\u0131nda, y\u00fcksek \u00f6l\u00e7eklenebilirlik, otomatik hata kurtarma, y\u00fck dengeleme ve karma\u015f\u0131k da\u011f\u0131t\u0131m stratejileri gerektiren durumlarda Kubernetes gibi konteyner orkestrasyon platformlar\u0131 tercih edilmelidir.<\/p>\n<h4>Konteynerlerde g\u00fcvenlik nas\u0131l sa\u011flan\u0131r?<\/h4>\n<p>G\u00fcvenlik i\u00e7in \u015funlara dikkat edin: En az yetkiye sahip kullan\u0131c\u0131larla konteynerleri \u00e7al\u0131\u015ft\u0131r\u0131n, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 i\u00e7eren eski imajlar\u0131 kullanmaktan ka\u00e7\u0131n\u0131n, imajlar\u0131 d\u00fczenli olarak g\u00fcncelleyin, hassas bilgileri ortam de\u011fi\u015fkenleri yerine Docker Secrets veya Kubernetes Secrets ile y\u00f6netin ve konteynerlerin sadece ihtiya\u00e7 duyduklar\u0131 portlar\u0131 a\u00e7mas\u0131n\u0131 sa\u011flay\u0131n.<\/p>\n","protected":false},"excerpt":{"rendered":"G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, uygulamalar\u0131n h\u0131zl\u0131 ve tutarl\u0131 bir \u015fekilde da\u011f\u0131t\u0131lmas\u0131 kritik \u00f6neme sahiptir. \u00d6zellikle birden fazl&#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":[1407],"tags":[],"class_list":{"0":"post-39215","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-docker","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>Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma 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\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma Rehberi\" \/>\n<meta property=\"og:description\" content=\"G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, uygulamalar\u0131n h\u0131zl\u0131 ve tutarl\u0131 bir \u015fekilde da\u011f\u0131t\u0131lmas\u0131 kritik \u00f6neme sahiptir. \u00d6zellikle birden fazl...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-16T16:30:35+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\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma Rehberi\",\"datePublished\":\"2026-02-16T16:30:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/\"},\"wordCount\":2177,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Docker\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/\",\"name\":\"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-16T16:30:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma 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":"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma 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\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma Rehberi","og_description":"G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, uygulamalar\u0131n h\u0131zl\u0131 ve tutarl\u0131 bir \u015fekilde da\u011f\u0131t\u0131lmas\u0131 kritik \u00f6neme sahiptir. \u00d6zellikle birden fazl...","og_url":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-16T16:30:35+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\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma Rehberi","datePublished":"2026-02-16T16:30:35+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/"},"wordCount":2177,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Docker"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/","name":"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-16T16:30:35+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/docker-ile-konteynerize-edilmis-ebeveyn-kayit-portali-olusturma-tam-yigin-uygulama-dockerlastirma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker ile Konteynerize Edilmi\u015f Ebeveyn Kay\u0131t Portal\u0131 Olu\u015fturma: Tam Y\u0131\u011f\u0131n Uygulama Dockerla\u015ft\u0131rma 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\/39215","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=39215"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39215\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}