{"id":584,"date":"2026-04-06T14:27:04","date_gmt":"2026-04-06T11:27:04","guid":{"rendered":"https:\/\/m4.ist\/index.php\/2026\/04\/06\/docker-tabanl-home-docker-tabanl\/"},"modified":"2026-04-06T14:27:04","modified_gmt":"2026-04-06T11:27:04","slug":"docker-tabanl-home-docker-tabanl","status":"publish","type":"post","link":"https:\/\/m4.ist\/index.php\/2026\/04\/06\/docker-tabanl-home-docker-tabanl\/","title":{"rendered":"Docker Tabanl\u0131 Home: 2026 Pratik Rehber"},"content":{"rendered":"<h1>Docker Tabanl\u0131 Home Lab Ekosistemi: Portainer ile 20+ Servis Kurulumu ve Y\u00f6netimi Rehberi<\/h1>\n<div class=\"rankmath-manual-toc\" data-rankmath-toc=\"1\">\n<p><strong>Icindekiler<\/strong><\/p>\n<ul>\n<li><a href=\"#bolum-1\">Docker Tabanl\u0131 Home: Giri\u015f: Home Lab Y\u00f6netiminde Merkezi Kontrol<\/a><\/li>\n<li><a href=\"#bolum-2\">Neden Docker ve Portainer?<\/a><\/li>\n<li><a href=\"#bolum-3\">Haz\u0131rl\u0131k ve Gereksinimler<\/a><\/li>\n<li><a href=\"#bolum-4\">Ad\u0131m Ad\u0131m Kurulum: Portainer Kurulumu<\/a><\/li>\n<li><a href=\"#bolum-5\">20+ Servis Y\u00f6netimi Stratejisi<\/a><\/li>\n<li><a href=\"#bolum-6\">Environment Variables ve Konfig\u00fcrasyon Isolasyonu<\/a><\/li>\n<li><a href=\"#bolum-7\">Ba\u011f\u0131ml\u0131l\u0131k Zinciri Kontrol\u00fc<\/a><\/li>\n<li><a href=\"#bolum-8\">A\u011f \u0130zolasyonu ve Performans<\/a><\/li>\n<li><a href=\"#bolum-9\">Sorun Giderme: Hatalar\u0131 Anlamak<\/a><\/li>\n<li><a href=\"#bolum-10\">Konteyner \u00c7\u00f6kmesi ve Log Analizi<\/a><\/li>\n<li><a href=\"#bolum-11\">Sistem Geri Alma (Rollback) Prosed\u00fcr\u00fc<\/a><\/li>\n<li><a href=\"#bolum-12\">Disk Alan\u0131 Y\u00f6netimi<\/a><\/li>\n<li><a href=\"#bolum-13\">G\u00fcvenlik ve Bak\u0131m<\/a><\/li>\n<li><a href=\"#bolum-14\">Karar Noktalar\u0131 ve Tablolar<\/a><\/li>\n<li><a href=\"#bolum-15\">En \u0130yi Uygulamalar Kontrol Listesi<\/a><\/li>\n<li><a href=\"#bolum-16\">Nedensel Analiz Tablosu<\/a><\/li>\n<li><a href=\"#bolum-17\">S\u0131k\u00e7a Sorulan Sorular<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"bolum-1\">Docker Tabanl\u0131 Home: Giri\u015f: Home Lab Y\u00f6netiminde Merkezi Kontrol<\/h2>\n<p>Ev sunucular\u0131nda 20&#8217;den fazla container&#8217;\u0131 ayr\u0131 ayr\u0131 takip etmek, terminal komutlar\u0131n\u0131 s\u00fcrekli tekrarlamak ve loglar\u0131 tek tek incelemek operat\u00f6r adaylar\u0131 i\u00e7in h\u0131zla verimsizle\u015fen bir s\u00fcre\u00e7tir. Karma\u015f\u0131kl\u0131k artt\u0131\u011f\u0131nda, sistem y\u00f6netimi art\u0131k basit bir i\u015f de\u011fil, s\u00fcrd\u00fcr\u00fclebilir bir y\u00f6netim zorunlulu\u011funa d\u00f6n\u00fc\u015f\u00fcr. Bir y\u00f6netici olarak, sadece servislerin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 de\u011fil, onlar\u0131n birbiriyle nas\u0131l ileti\u015fim kurdu\u011funu, a\u011f trafi\u011finin nas\u0131l ak\u0131\u015ft\u0131\u011f\u0131n\u0131 da bilmeniz gerekir. Bu noktada, g\u00f6rsel bir kontrol noktas\u0131 olmadan ilerlemek, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 fark etmeyi ve yedekleme prosed\u00fcrlerini hat\u0131rlatmay\u0131 neredeyse imkans\u0131z hale getirir.<\/p>\n<p>Ek baglam icin <a href=\"\/docker-tabanl-home-lab-ekosistemi-portainer-ile-20-servis-kurulumu-ve-y-netimi-rehberi\">docker tabanl home lab ekosistemi portainer ile 20 servis ku<\/a> ve <a href=\"https:\/\/github.com\/gkandemi\/docker\" target=\"_blank\" rel=\"noopener\">docker<\/a> baglantilarina bakabilirsiniz.<\/p>\n<p>\u0130\u015fte bu noktada <strong>Docker Tabanl\u0131 Home Lab<\/strong> ekosisteminin en kritik bile\u015feni olan Portainer devreye girer: sisteme b\u00fct\u00fcnsel bir bak\u0131\u015f a\u00e7\u0131s\u0131 kazand\u0131r\u0131r. Bu rehber, yaln\u0131zca bir kurulum k\u0131lavuzu de\u011fil; ev sunucunuzun kontrol\u00fcn\u00fc tekrar sizin elinize alman\u0131z\u0131 sa\u011flayan, operat\u00f6r odakl\u0131 bir yakla\u015f\u0131md\u0131r. Klasik &#8220;her \u015feyi ayr\u0131 ayr\u0131 kurma&#8221; modundan \u00e7\u0131k\u0131p, sistem y\u00f6netimi yap\u0131labilir, g\u00f6zlemlenebilir ve s\u00fcrd\u00fcr\u00fclebilir bir yap\u0131ya ge\u00e7i\u015f ad\u0131mlar\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Hedefimiz, karma\u015f\u0131k altyap\u0131y\u0131 bile basit, hatas\u0131z ve y\u00f6netilebilir bir denetime d\u00f6n\u00fc\u015ft\u00fcrmek.<\/p>\n<h2 id=\"bolum-2\">Neden Docker ve Portainer?<\/h2>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" alt=\"Neden Docker ve Portainer?\" loading=\"lazy\" src=\"https:\/\/m4.ist\/wp-content\/uploads\/2026\/04\/z-image-turbo_00066_.png\"\/><\/figure>\n<p>Ev sunucular\u0131nda tam sanal makineler (VM) y\u00f6netimi, ayn\u0131 donan\u0131mda \u00e7ok say\u0131da hizmet \u00e7al\u0131\u015ft\u0131r\u0131rken kaynak t\u00fcketimini an\u0131nda art\u0131rabilir. Y\u00fcksek kaynak talebi, i\u015flemci yorulmas\u0131na ve disk IO gecikmelerine yol a\u00e7arak sistemin kararl\u0131l\u0131\u011f\u0131n\u0131 sarsabilir. Docker, hafif izolasyon g\u00fcc\u00fcyle bu y\u00fck\u00fc belirgin oranda hafifletir, ancak container say\u0131s\u0131 artt\u0131\u011f\u0131nda y\u00f6netim karma\u015fas\u0131 operat\u00f6rl\u00fckten y\u00f6netim i\u015fine d\u00f6n\u00fc\u015f\u00fcr. Bu nedenle, Docker&#8217;in esnekli\u011fini, g\u00f6rsel bir kontrol noktas\u0131yla dengelemek operat\u00f6rl\u00fck a\u00e7\u0131s\u0131ndan en kritik karar noktalar\u0131ndan biridir.<\/p>\n<p>Portainer, bu dengeyi sa\u011flayan merkezi y\u00f6netim katman\u0131d\u0131r. Standart komut sat\u0131r\u0131 aray\u00fczlerinin (CLI) karma\u015f\u0131kl\u0131\u011f\u0131 ve hatas\u0131z olma gereksinimini ortadan kald\u0131rarak, t\u00fcm container&#8217;\u0131n durumunu, a\u011f topolojisini ve log ak\u0131\u015f\u0131n\u0131 tek bir ekranda g\u00f6rselle\u015ftirir. Bu sayede, sistemin g\u00f6zlemlenirli\u011fini art\u0131rarak, hata ay\u0131klama s\u00fcre\u00e7lerini ve g\u00fcncelleme i\u015flemlerini manuel komutlardan kurtar\u0131r. Bu kombinasyon, statik kurulumlardan fark\u0131 olarak, anl\u0131k geriye d\u00f6n\u00fc\u015f (rollback) yetene\u011fi sunmas\u0131d\u0131r. Operat\u00f6rler i\u00e7in bu; sistemin kontrol\u00fcn\u00fc elinde tutmak, riskleri minimize etmek ve sahadan gelen ger\u00e7ekler \u0131\u015f\u0131\u011f\u0131nda karar vermek anlam\u0131na gelir.<\/p>\n<h2 id=\"bolum-3\">Haz\u0131rl\u0131k ve Gereksinimler<\/h2>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" alt=\"Haz\u0131rl\u0131k ve Gereksinimler\" loading=\"lazy\" src=\"https:\/\/m4.ist\/wp-content\/uploads\/2026\/04\/z-image-turbo_00067_.png\"\/><\/figure>\n<p>Ba\u015flamadan \u00f6nce donan\u0131m ve yaz\u0131l\u0131m ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 netle\u015ftirmek, operat\u00f6rl\u00fck a\u00e7\u0131s\u0131ndan ilk kay\u0131p olmad\u0131r. Docker tabanl\u0131 home lab ekosisteminde kula\u011fa basit gelen kurulumlar asl\u0131nda katmanl\u0131 bir haz\u0131rl\u0131k gerektirir. Bir sistem y\u00f6neticisi olarak, herhangi bir aray\u00fcz\u00fc y\u00fcklemeye ba\u015flamadan \u00f6nce alt\u0131ndaki motorlar\u0131n kararl\u0131l\u0131\u011f\u0131n\u0131 do\u011frulamal\u0131s\u0131n\u0131z.<\/p>\n<p>Kritik nokta, Docker Engine&#8217;in sisteminizde kararl\u0131 bir \u015fekilde \u00e7al\u0131\u015f\u0131yor olmas\u0131d\u0131r. Bu motor olmadan container y\u00f6netimi tamamen imkans\u0131zd\u0131r. Ayr\u0131ca, sistemde zaten bir yap\u0131sal birikim varsa, bu yap\u0131y\u0131 Docker tabanl\u0131 home lab ile uyumlu hale getirmek gerekir. Portainer kurulumunda dikkat edilmesi gereken ikinci unsur, genellikle uzak sunucularda \u00e7al\u0131\u015fmas\u0131 gereken Portainer Agent&#8217;\u0131n yap\u0131land\u0131r\u0131lmas\u0131d\u0131r. Home lab&#8217;\u0131n\u0131z\u0131n fiziksel ve sanal cihazlar halinde da\u011f\u0131lm\u0131\u015f olmas\u0131 durumunda, y\u00f6netim paneli i\u00e7in tek bir nokta yerine bir a\u011f yap\u0131s\u0131 kurmak en az kritiktir. Bu yap\u0131land\u0131rma, operat\u00f6rlerin birden fazla sunucu \u00fczerindeki konteynerlar\u0131 tek bir ekrandan izleyebilmesini sa\u011flar. Sadece ana sunucu \u00fczerindeki servislere de\u011fil, diske ba\u011fl\u0131 a\u011f sunucular\u0131ndaki (NAS vb.) hizmetlere de eri\u015fim sa\u011flamak istenecektir.<\/p>\n<p>Kaynak t\u00fcketimini g\u00f6z ard\u0131 etmeyin. Docker tabanl\u0131 y\u00f6netim panelleri haf\u0131zay\u0131 ve disk alan\u0131n\u0131 do\u011frudan kullan\u0131r. 20&#8217;den fazla servisin \u00e7al\u0131\u015ft\u0131\u011f\u0131 bir ortamda, aray\u00fcz\u00fcn tepkisiz kalmamas\u0131 i\u00e7in RAM miktar\u0131n\u0131n yeterlili\u011fi do\u011frudan operat\u00f6rl\u00fck ba\u015far\u0131s\u0131n\u0131 etkiler. Ayr\u0131ca, sistem yedeklerini veya rollback i\u015flemleri i\u00e7in yeterli depolama alan\u0131 ayr\u0131lmal\u0131d\u0131r. Standart bir kontrol paneli kadar kritik olan, sistem g\u00fcnl\u00fcklerinin (logs) tutulmas\u0131 ve operat\u00f6rlerin ge\u00e7mi\u015f hatalar\u0131 analiz edebilmesidir.<\/p>\n<h2 id=\"bolum-4\">Ad\u0131m Ad\u0131m Kurulum: Portainer Kurulumu<\/h2>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" alt=\"Ad\u0131m Ad\u0131m Kurulum: Portainer Kurulumu\" loading=\"lazy\" src=\"https:\/\/m4.ist\/wp-content\/uploads\/2026\/04\/z-image-turbo_00068_.png\"\/><\/figure>\n<p>Haz\u0131rsak Portainer&#8217;\u0131n Docker tabanl\u0131 mimarisini kullanarak sunucumuza entegre ediyoruz. Bu ad\u0131m, t\u00fcm y\u00f6netim altyap\u0131n\u0131z\u0131n temelini atar. Veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in kal\u0131c\u0131 bir depolama alan\u0131 tan\u0131mlamak ilk yap\u0131lmas\u0131 gereken i\u015ftir.<\/p>\n<p>\u00d6ncelikle hedef dizini olu\u015fturarak ba\u015flay\u0131n:<\/p>\n<pre><code class=\"language-bash\">mkdir -p \/opt\/portainer\/data\n<\/code><\/pre>\n<p>Bu komut, Portainer&#8217;\u0131n y\u00f6netti\u011fi verileri saklayaca\u011f\u0131 fiziksel sunucu alan\u0131n\u0131 belirler. Konteyner silinse bile bu veriler korunur. Bu noktada \u00f6nemli bir nokta: Veri b\u00fct\u00fcnl\u00fc\u011f\u00fc i\u00e7in bu dizine uygun izinleri (chown) atayabilirsiniz. Ancak, Portainer konteyneri yeterince esnek, bu y\u00fczden standart Docker davran\u0131\u015f\u0131 genelde yeterlidir.<\/p>\n<p>\u015eimdi Portainer&#8217;\u0131 ba\u015flatan ana komut sat\u0131r\u0131n\u0131 yaz\u0131yoruz. Port 9443, taray\u0131c\u0131 \u00fczerinden g\u00fcvenli eri\u015fim i\u00e7in ayr\u0131lm\u0131\u015ft\u0131r. A\u011f g\u00fcvenli\u011fi a\u00e7\u0131s\u0131ndan d\u0131\u015f d\u00fcnyadan gelen trafi\u011fe izin vermemiz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 9443\/tcp\n<\/code><\/pre>\n<p>\u00d6nemli bir detay: Portainer, varsay\u0131lan olarak HTTP (80) yerine g\u00fcvenli HTTPS (9443) kullan\u0131r. Bu, operat\u00f6r olarak veri g\u00fcvenli\u011fi i\u00e7in do\u011fru olan\u0131 se\u00e7ti\u011finizi g\u00f6sterir. Ayr\u0131ca, sunucu yeniden ba\u015flad\u0131\u011f\u0131nda hizmetin durmamas\u0131 i\u00e7in restart politikas\u0131n\u0131 eklemek pratik bir al\u0131\u015fkanl\u0131kt\u0131r:<\/p>\n<pre><code class=\"language-bash\">docker run -d \\\n  --name portainer \\\n  --restart=unless-stopped \\\n  -p 9443:9443 \\\n  -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\n  -v \/opt\/portainer\/data:\/data \\\n  portainer\/portainer-ce:latest\n<\/code><\/pre>\n<p>Bu ad\u0131mda dikkat edilmesi gereken nokta, `docker.sock` ba\u011flamas\u0131n\u0131n yetki gereksinimleridir. E\u011fer sistemde Docker API&#8217;sine do\u011frudan eri\u015fim yoksa, bu y\u00f6ntem \u00e7al\u0131\u015fmaz. Port 9443 trafi\u011fini engellemek, potansiyel sald\u0131r\u0131 vekt\u00f6rlerini kapatmak a\u00e7\u0131s\u0131ndan kritiktir. Ba\u015far\u0131l\u0131 kurulum i\u00e7in konteyner loglar\u0131na bakarak hata al\u0131p almad\u0131\u011f\u0131n\u0131z\u0131 do\u011frulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">docker logs portainer\n<\/code><\/pre>\n<p>Loglarda &#8220;Listening for HTTP&#8221; mesaj\u0131n\u0131 g\u00f6rd\u00fc\u011f\u00fcn\u00fczde, taray\u0131c\u0131dan `https:\/\/ip-adresi:9443` adresine eri\u015febilirsiniz. \u0130lk giri\u015fte bir admin parolas\u0131 belirlemeniz istenecektir. Parolay\u0131 g\u00fcvenli bir yerde saklay\u0131n.<\/p>\n<h2 id=\"bolum-5\">20+ Servis Y\u00f6netimi Stratejisi<\/h2>\n<p>Docker Tabanl\u0131 Home lab kurulumlar\u0131nda, tekil konteyner y\u00f6netimi h\u0131zl\u0131 bir \u00e7\u00f6z\u00fcm gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik a\u00e7\u0131s\u0131ndan riskli bir yoldur. 20 servis ve \u00fczeri i\u00e7in her servisi ayr\u0131 ayr\u0131 ba\u015flatmak, kurulumun &#8220;tekrarlanabilirli\u011fini&#8221; (reproducibility) ortadan kald\u0131r\u0131r. Hata ay\u0131klama s\u00fcresini uzatan, ba\u011f\u0131ml\u0131l\u0131klar\u0131 g\u00f6remedi\u011finiz bir yap\u0131ya d\u00f6n\u00fc\u015f\u00fcr. Bu noktada Docker Compose en g\u00fcvenli kalemdir. T\u00fcm servisleri tan\u0131mlayan tek bir dosya veya yap\u0131land\u0131r\u0131lm\u0131\u015f dizinler olu\u015fturarak, sistemin tamam\u0131n\u0131n bir kerede da\u011f\u0131t\u0131lmas\u0131n\u0131 ve y\u00f6netilebilir kalmas\u0131n\u0131 sa\u011flay\u0131n.<\/p>\n<h3 id=\"bolum-6\">Environment Variables ve Konfig\u00fcrasyon Isolasyonu<\/h3>\n<p>Servislerin davran\u0131\u015flar\u0131n\u0131 belirleyen kritik verileri kod i\u00e7ine g\u00f6mmekten ka\u00e7\u0131n\u0131n. API anahtarlar\u0131n\u0131, veritaban\u0131 \u015fifrelerini ve harici servis ba\u011flant\u0131lar\u0131n\u0131 `.env` dosyalar\u0131na \u00e7\u0131kararak y\u00f6netin. Bu pratik, ortamlar aras\u0131 ge\u00e7i\u015fleri kolayla\u015ft\u0131r\u0131r ve en \u00f6nemlisi, hassas verilerinizi tekrar kullan\u0131lan Docker imajlar\u0131na s\u0131zmas\u0131n\u0131 engeller. Kod ve yap\u0131land\u0131rma ayarlar\u0131n\u0131n ayr\u0131\u015fmas\u0131, bak\u0131m ve g\u00fcncelleme s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r.<\/p>\n<h3 id=\"bolum-7\">Ba\u011f\u0131ml\u0131l\u0131k Zinciri Kontrol\u00fc<\/h3>\n<p>En yayg\u0131n hatalardan biri, veritaban\u0131n\u0131n veya arka plan servisinin haz\u0131r olmas\u0131n\u0131 beklemeden uygulaman\u0131n ba\u015fat\u0131lmas\u0131d\u0131r. Docker Compose i\u00e7inde `depends_on` parametresini ve restart politikalar\u0131n\u0131 do\u011fru ayarlay\u0131n. Bu yap\u0131land\u0131rma, bir servis \u00e7\u00f6k\u00fcnce otomatik olarak tekrar ba\u015flat\u0131lmas\u0131n\u0131 ve ba\u011f\u0131ml\u0131l\u0131k zincirinin kopmamas\u0131n\u0131 garanti eder. Servislerin ba\u011f\u0131ms\u0131zca \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 (orphan containers) d\u00fczenli olarak kontrol edin.<\/p>\n<h3 id=\"bolum-8\">A\u011f \u0130zolasyonu ve Performans<\/h3>\n<p>20+ servis \u00e7al\u0131\u015f\u0131rken, t\u00fcm konteynerlerin ayn\u0131 a\u011fda birbirini dinlemesi (broadcast trafi\u011fi) kaynak t\u00fcketimini art\u0131r\u0131r ve hata ay\u0131klamay\u0131 zorla\u015ft\u0131r\u0131r. Portainer i\u00e7inde veya Docker CLI ile farkl\u0131 a\u011flar olu\u015fturun. \u00d6rne\u011fin, DB servisleri i\u00e7in `db_network`, uygulama servisleri i\u00e7in `app_network` olu\u015fturun. Bu, sistem segmentasyonunu sa\u011flar ve gereksiz trafi\u011fi engeller.<\/p>\n<h2 id=\"bolum-9\">Sorun Giderme: Hatalar\u0131 Anlamak<\/h2>\n<p>Herhangi bir <strong>Docker Tabanl\u0131 Home Lab<\/strong> kurulumunda beklenmedik bir \u00e7\u00f6kme veya ba\u011flant\u0131 sorunu ya\u015fanabilir. Bu noktada yapay zeka de\u011fil, net veriler konu\u015fur. Hata giderme s\u00fcreci, operat\u00f6r\u00fcn en temel yeteneklerinden biridir. Bir sorun \u00e7\u0131kt\u0131\u011f\u0131nda panik yapmay\u0131n; ad\u0131mlar\u0131 takip edin.<\/p>\n<h3 id=\"bolum-10\">Konteyner \u00c7\u00f6kmesi ve Log Analizi<\/h3>\n<p>Bir servis \u00e7al\u0131\u015fmay\u0131 durdurdu\u011funda ilk yap\u0131lacak i\u015f, loglar\u0131 incelemektir. `docker logs ` komutuyla \u00e7\u0131kt\u0131y\u0131 yakalay\u0131n. \u00d6zellikle restart d\u00f6ng\u00fcleri olu\u015fuyor mu, yoksa s\u00fcrekli bir hatadan dolay\u0131 m\u0131 duruyor? \u00c7\u0131kt\u0131n\u0131n son 100 sat\u0131r\u0131n\u0131 (`&#8211;tail=100`) incemek, mevcut sorunu \u00e7\u00f6zmenin en h\u0131zl\u0131 yoludur. Ek olarak `docker inspect` komutuyla konteynerin durumunu ve exit kodunu kontrol ederek hatan\u0131n kayna\u011f\u0131n\u0131 do\u011frulayabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">docker logs --tail=100 &lt;container_name&gt;\n<\/code><\/pre>\n<p>Bu \u00e7\u0131kt\u0131daki hata mesajlar\u0131 genellikle spesifik bir nedene i\u015faret eder. \u00d6rne\u011fin, &#8220;Port 5432 already in use&#8221; hatas\u0131 genellikle veritaban\u0131n\u0131n zaten ba\u015fka bir yerde veya ba\u015flat\u0131lamad\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h3 id=\"bolum-11\">Sistem Geri Alma (Rollback) Prosed\u00fcr\u00fc<\/h3>\n<p>G\u00fcncelleme denemeleri s\u0131ras\u0131nda sistemi karartmak bir olas\u0131l\u0131kt\u0131r. Bu riski y\u00f6netmek i\u00e7in herhangi bir yap\u0131land\u0131rma de\u011fi\u015fikli\u011fi yap\u0131lmadan \u00f6nce Docker Compose dosyalar\u0131n\u0131n bir yede\u011fini al\u0131n. En iyi y\u00f6ntem versiyon kontrol\u00fcne (Git) almakt\u0131r. Bir g\u00fcncelleme sonras\u0131 servisler karars\u0131z hale gelirse, yapay giri\u015fimler yerine eski versiyona geri d\u00f6n\u00fcn. Bu strateji, kay\u0131p i\u015f kayb\u0131n\u0131 ve veri kayb\u0131n\u0131 \u00f6nler.<\/p>\n<h3 id=\"bolum-12\">Disk Alan\u0131 Y\u00f6netimi<\/h3>\n<p>Disk doluluk s\u0131n\u0131rlar\u0131, bir Docker Lab i\u00e7in kritik bir noktad\u0131r. Konteynerler ve olu\u015fturduklar\u0131 katmanlar disk alan\u0131 h\u0131zla t\u00fcketebilir. Docker bazen art\u0131k kullan\u0131lan veriyi temizlemez ve disk dolunca servisler kapan\u0131r. Disk kullan\u0131m\u0131n\u0131 d\u00fczenli olarak `df -h` komutuyla kontrol edin. Disk doluluk y\u00fczde %80&#8217;i ge\u00e7ti\u011finde temizlik yapman\u0131z gerekir. `docker system prune -f` komutuyla kullan\u0131lmayan a\u011f yap\u0131lar\u0131n\u0131 ve imajlar\u0131 temizleyebilirsiniz. Bu ad\u0131mlar\u0131 s\u0131k\u0131\u015fmaz bir d\u00f6ng\u00fcde yapmak, sistemin kararl\u0131l\u0131\u011f\u0131n\u0131 garanti eder.<\/p>\n<pre><code class=\"language-bash\">docker system prune -a\n<\/code><\/pre>\n<p>Uyar\u0131: `-a` parametresi, durdurulmu\u015f t\u00fcm konteynerleri ve a\u011f\u0131 temizler, ancak durdurulmu\u015f konteynerler aras\u0131ndaki kay\u0131p veri (volume) kayb\u0131na dikkat edin. \u00d6nce yedek almak en do\u011frusudur.<\/p>\n<h2 id=\"bolum-13\">G\u00fcvenlik ve Bak\u0131m<\/h2>\n<p>Sistem kararl\u0131l\u0131\u011f\u0131 sa\u011fland\u0131ktan sonra, kritik ad\u0131m g\u00fcvenli\u011fini kurgulamak olmal\u0131d\u0131r. Y\u00f6netim aray\u00fcz\u00fc olan Portainer, t\u00fcm konteynerlar\u0131n merkezi noktas\u0131d\u0131r; bu y\u00fczden bu k\u00f6pr\u00fcy\u00fc zay\u0131f b\u0131rakmamal\u0131y\u0131z.<\/p>\n<p>Kullan\u0131c\u0131 ve Rol Y\u00f6netimi (RBAC), as\u0131l g\u00fcvenlik katman\u0131d\u0131r. Kural olarak her kullan\u0131c\u0131ya tam yetki (Administrator) vermemeliyiz. Portainer \u00fczerinde Edit\u00f6r veya Sadece Okuma yetkisiyle kullan\u0131c\u0131lar\u0131 olu\u015fturun. En k\u00f6t\u00fc senaryoda bir kural hatas\u0131 yapt\u0131\u011f\u0131n\u0131zda, bu k\u0131s\u0131tlama sizi b\u00fcy\u00fck bir tehlikeye kar\u015f\u0131 korur.<\/p>\n<p>Konteyner \u0130maj G\u00fcncellemeleri, s\u00fcre\u00e7lerin can damar\u0131d\u0131r. G\u00fcvenlik a\u00e7\u0131klar\u0131 (vulnerabilities) \u00e7o\u011fu zaman g\u00fcncel olmayan imajlardan kaynaklan\u0131r. Docker Hub&#8217;da yeni bir s\u00fcr\u00fcm \u00e7\u0131kt\u0131\u011f\u0131nda, Portainer aray\u00fcz\u00fcnden veya komut sat\u0131r\u0131 ile imajlar\u0131 g\u00fcncelleyin. G\u00fcncelleme \u00f6ncesi `docker save` komutuyla imajlar\u0131 yedekleyerek geri d\u00f6n\u00fc\u015f (Rollback) yapabilirsiniz.<\/p>\n<p>D\u0131\u015far\u0131ya A\u00e7\u0131lan Portlar\u0131n S\u0131n\u0131rland\u0131r\u0131lmas\u0131, &#8220;En Az Yetki&#8221; ilkesiyle ilgilidir. Portainer aray\u00fcz\u00fcn\u00fc do\u011frudan internete a\u00e7\u0131k tutmay\u0131n. Sadece yerel a\u011f IP&#8217;si veya VPN arac\u0131l\u0131\u011f\u0131yla eri\u015fime izin verin. Konteyner i\u00e7eri\u011findeki servislerin portlar\u0131n\u0131, gerekirse firewall kural\u0131 ile spesifik IP bloklar\u0131yla s\u0131n\u0131rland\u0131r\u0131n. Bu \u00f6nlem, olas\u0131 bir k\u0131r\u0131lma sonucundaki etki alan\u0131n\u0131 (blast radius) minimize eder.<\/p>\n<p>Ekonomik ve g\u00fcvenli bir Docker Tabanl\u0131 Home Lab i\u00e7in d\u00fczenli bak\u0131m \u015fartt\u0131r. Disk dolulu\u011funu kontrol ettikten sonra, Portainer konfig\u00fcrasyon dosyas\u0131n\u0131n yede\u011fini almay\u0131 ihmal etmeyin. Bu, ileride panoyu s\u0131f\u0131rlad\u0131\u011f\u0131n\u0131zda kay\u0131p ya\u015famaman\u0131z i\u00e7in en temel hat\u0131rlatmad\u0131r. Bu prosed\u00fcrleri otomatikle\u015ftirmek, sistemi uzun vadeli ayakta tutman\u0131z\u0131 sa\u011flar.<\/p>\n<h2 id=\"bolum-14\">Karar Noktalar\u0131 ve Tablolar<\/h2>\n<p>Docker Tabanl\u0131 Home Lab projelerinde do\u011fru arac\u0131 se\u00e7mek, gelecekteki stresi azalt\u0131r. \u0130\u015fte operat\u00f6rlerin s\u0131kl\u0131kla sordu\u011fu temel kar\u015f\u0131la\u015ft\u0131rmalar.<\/p>\n<table>\n<thead>\n<tr>\n<th>Kriter<\/th>\n<th>Docker \/ Containers<\/th>\n<th>Sanal Makine (VM)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Kaynak T\u00fcketimi<\/td>\n<td>D\u00fc\u015f\u00fck ba\u015flang\u0131\u00e7 RAM, h\u0131zl\u0131 ba\u015flatma.<\/td>\n<td>Y\u00fcksek ba\u015flang\u0131\u00e7 RAM, yava\u015f ba\u015flatma.<\/td>\n<\/tr>\n<tr>\n<td>Isolation<\/td>\n<td>Hafif, payla\u015f\u0131lan \u00e7ekirdekler.<\/td>\n<td>Tam, ayr\u0131 \u00e7ekirdekler ve bellek.<\/td>\n<\/tr>\n<tr>\n<td>Y\u00f6netim Zorlu\u011fu<\/td>\n<td>Aray\u00fcze ba\u011f\u0131ml\u0131 (CLI\/Portainer), h\u0131zl\u0131 da\u011f\u0131t\u0131m.<\/td>\n<td>Boot loader ve OS seviyesinde y\u00f6netim.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>VM y\u00f6netiminin aksine, Docker konteynerleri birbirleriyle a\u011f tabanl\u0131 ileti\u015fim kurar. Bu mimari, &#8220;Orphan Container&#8221; sorunlar\u0131na yol a\u00e7abilir; bir konteyner ba\u011f\u0131ml\u0131l\u0131\u011f\u0131na tak\u0131l\u0131p kalsa bile ana makine \u00e7al\u0131\u015fmaya devam eder. Bu durumda Portainer&#8217;dan h\u0131zl\u0131ca temizleme yapmak \u015fartt\u0131r.<\/p>\n<h3 id=\"bolum-15\">En \u0130yi Uygulamalar Kontrol Listesi<\/h3>\n<p>Bir kurulumun sa\u011fl\u0131kl\u0131 olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmek i\u00e7in \u015fu kontrol listesini kullanabilirsiniz:<\/p>\n<ul>\n<li>[ ] Portainer aray\u00fcz\u00fc HTTPS (9443) \u00fczerinden eri\u015filebilir mi?<\/li>\n<li>[ ] `\/var\/run\/docker.sock` ba\u011flant\u0131s\u0131 konteyner i\u00e7inde aktif mi?<\/li>\n<li>[ ] Veri kal\u0131c\u0131l\u0131\u011f\u0131 i\u00e7in bir volume tan\u0131mlanm\u0131\u015f m\u0131?<\/li>\n<li>[ ] Gereksiz konteynerler i\u00e7in temizlik komutu \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131 m\u0131?<\/li>\n<li>[ ] Sadece gerekli portlar firewall&#8217;da a\u00e7\u0131k m\u0131?<\/li>\n<li>[ ] Kullan\u0131c\u0131 yetkileri (RBAC) ayarlanm\u0131\u015f m\u0131?<\/li>\n<\/ul>\n<h3 id=\"bolum-16\">Nedensel Analiz Tablosu<\/h3>\n<p>Sistem kararl\u0131l\u0131\u011f\u0131 sorunlar\u0131nda hangi ad\u0131m\u0131 atman\u0131z gerekti\u011fini h\u0131zl\u0131ca bulmak i\u00e7in bu tabloyu kullanabilirsiniz:<\/p>\n<table>\n<thead>\n<tr>\n<th>G\u00f6r\u00fclen Belirtiler<\/th>\n<th>M\u00fcmk\u00fcn Nedenler<\/th>\n<th>Tavsiye Eylem<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Servisler s\u00fcrekli restart oluyor<\/td>\n<td>Yetersiz kaynak, imaj uyumsuzlu\u011fu<\/td>\n<td>Loglar\u0131 kontrol et, `docker stats` ile kaynak kullan\u0131m\u0131na bak.<\/td>\n<\/tr>\n<tr>\n<td>Port ba\u011flant\u0131s\u0131 reddediliyor<\/td>\n<td>Kilitli port, yanl\u0131\u015f IP, firewall<\/td>\n<td>`sudo netstat -tulpn` ile port kilitini kontrol et.<\/td>\n<\/tr>\n<tr>\n<td>Disk %90 doluyor<\/td>\n<td>\u00c7\u00f6p veri, g\u00fcnl\u00fck loglar\u0131, imajlar<\/td>\n<td>Prune komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r, loglar\u0131 s\u0131k\u0131la\u015ft\u0131r.<\/td>\n<\/tr>\n<tr>\n<td>Sistemde a\u011f gecikmesi var<\/td>\n<td>Bridge a\u011f broadcast trafi\u011fi, DNS \u00e7\u00f6z\u00fcmlemesi<\/td>\n<td>Network modunu Host yapmay\u0131 deney, DNS sunucusunu kontrol et.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"bolum-17\">S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p><strong>Docker Tabanl\u0131 Home Lab Ekosistemi: Portainer ile 20+ Servis Kurulumu ve Y\u00f6netimi ne zaman mantiklidir?<\/strong><\/p>\n<p>20&#8217;den fazla hizmet y\u00f6netmeye ba\u015flad\u0131\u011f\u0131n\u0131zda veya birden fazla sunucuda ortak bir kontrol\u00fc merkeziye \u00e7ekmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda. CLI ile y\u00f6netmek zihinsel y\u00fck\u00fc art\u0131rd\u0131\u011f\u0131nda Portainer&#8217;\u0131n otomasyon ve g\u00f6rsellik faydas\u0131 kritik hale gelir. Ayr\u0131ca, birden fazla ki\u015fiyle birlikte \u00e7al\u0131\u015f\u0131yorsan\u0131z (\u00f6rne\u011fin ebeveyn veya karde\u015fler), g\u00f6rsel bir panel olmadan yetki da\u011f\u0131t\u0131m\u0131 imkans\u0131zd\u0131r.<\/p>\n<p><strong>Docker Tabanl\u0131 Home Lab Ekosistemi: Portainer ile 20+ Servis Kurulumu ve Y\u00f6netimi uygularken en yaygin hata nedir?<\/strong><\/p>\n<p>Kullan\u0131c\u0131 yetkilerinin y\u00f6netilmemesi ve container imajlar\u0131n\u0131n g\u00fcncel tutulmamas\u0131. Portainer&#8217;\u0131 &#8220;root&#8221; kullan\u0131c\u0131s\u0131yla tam eri\u015fimli \u00e7al\u0131\u015ft\u0131rmak veya g\u00fcncellemeyi atlamak, sistemdeki ciddi g\u00fcvenlik a\u00e7\u0131klar\u0131na yol a\u00e7ar. Ayr\u0131ca, genellikle veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 `.env` dosyas\u0131 yerine kod i\u00e7ine g\u00f6mmek, geli\u015ftirme ortam\u0131n\u0131 \u00fcretimde kullanma hatas\u0131d\u0131r.<\/p>\n<p><strong>Docker Tabanl\u0131 Home Lab Ekosistemi: Portainer ile 20+ Servis Kurulumu ve Y\u00f6netimi sonrasi hangi kontrol adimlari yapilmalidir?<\/strong><\/p>\n<p>Kontrol listesinin temel maddeleri. Disk dolulu\u011funu kontrol etmek, konteyner loglar\u0131na bakmak, Portainer konfig\u00fcrasyon yede\u011fini almak ve sistemde birle\u015fik a\u011f topolojisini do\u011frulamak. Ayr\u0131ca, bir sonraki g\u00fcncelleme \u00f6ncesi, t\u00fcm servislerin ba\u011flant\u0131lar\u0131na test etmek.<\/p>\n<p><strong>Portainer d\u0131\u015f\u0131nda ba\u015fka hangi ara\u00e7lar kullan\u0131labilir?<\/strong><\/p>\n<p>Komut sat\u0131r\u0131 (CLI) yeterliyse, sadece Docker gerekir. Grafiksel gereksinim varsa Rancher Desktop veya Uptime Kuma gibi di\u011fer y\u00f6netim panelleri de de\u011ferlendirilebilir. Ancak portability ve kurulum kolayl\u0131\u011f\u0131, Docker Compose entegrasyonu ve topluluk deste\u011fi a\u00e7\u0131s\u0131ndan Portainer standartt\u0131r.<\/p>\n<p><strong>Rollback i\u015flemi ger\u00e7ekten gerekli mi?<\/strong><\/p>\n<p>Hay\u0131r, gerekli de\u011fildir, fakat operat\u00f6r a\u00e7\u0131s\u0131ndan &#8220;gerekli&#8221;dir. Bir g\u00fcncellemeden sonra servisler bozuldu\u011funda eski s\u00fcr\u00fcme d\u00f6nmek, u\u011fra\u015fmadan ve kay\u0131p ya\u015famadan sistemin h\u0131zl\u0131ca onar\u0131lmas\u0131n\u0131 sa\u011flar. Operat\u00f6rler i\u00e7in risk y\u00f6netimi, gereksiz risk almamakt\u0131r.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker Tabanl\u0131 Home: Docker Tabanl Home Lab ile Portainer kullanarak 20+ servisi tek bir ekrandan y\u00f6netin. Detayl\u0131 kurulum rehberi ve g\u00fcvenlik stratejileri. Hem<\/p>\n","protected":false},"author":1,"featured_media":580,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Docker Tabanl\u0131 Home: 2026 Pratik Rehber","rank_math_description":"Docker Tabanl\u0131 Home: Docker Tabanl Home Lab ile Portainer kullanarak 20+ servisi tek bir ekrandan y\u00f6netin. Detayl\u0131 kurulum rehberi ve g\u00fcvenlik stratejileri. Hem","rank_math_focus_keyword":"Docker Tabanl\u0131 Home","footnotes":""},"categories":[212],"tags":[74,213,214,75,215,216],"class_list":["post-584","post","type-post","status-publish","format-standard","has-post-thumbnail","category-lab","tag-docker","tag-docker-tabanl-home-lab","tag-home-lab","tag-konteyner","tag-portainer","tag-self-hosting"],"_links":{"self":[{"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/posts\/584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/comments?post=584"}],"version-history":[{"count":0,"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/posts\/584\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/media\/580"}],"wp:attachment":[{"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/media?parent=584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/categories?post=584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/m4.ist\/index.php\/wp-json\/wp\/v2\/tags?post=584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}