{"id":44809,"date":"2026-09-20T21:08:28","date_gmt":"2026-09-20T18:08:28","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/"},"modified":"2026-09-20T21:08:28","modified_gmt":"2026-09-20T18:08:28","slug":"docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/","title":{"rendered":"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor?"},"content":{"rendered":"<h2>Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor?<\/h2>\n<p>Docker konteynerleri, uygulamalar\u0131 izole edilmi\u015f ve ta\u015f\u0131nabilir bir ortamda \u00e7al\u0131\u015ft\u0131rmak i\u00e7in devrim niteli\u011finde bir yakla\u015f\u0131m sunsa da, verilerin kal\u0131c\u0131l\u0131\u011f\u0131 ve y\u00f6netimi \u00f6nemli bir soru i\u015faretidir. Bir konteyner silindi\u011finde, i\u00e7erisindeki t\u00fcm veriler de kaybolur. Bu durum, veritabanlar\u0131, kullan\u0131c\u0131 dosyalar\u0131 veya yap\u0131land\u0131rma bilgileri gibi kritik verileri olan uygulamalar i\u00e7in b\u00fcy\u00fck bir sorun te\u015fkil eder. Bu makalede, Docker&#8217;da veri y\u00f6netimi i\u00e7in iki temel ve yayg\u0131n mekanizma olan Docker volumes ve bind mounts aras\u0131ndaki farklar\u0131, kullan\u0131m senaryolar\u0131n\u0131 ve en iyi uygulamalar\u0131 derinlemesine inceleyerek, verilerinizin konteyner d\u00fcnyas\u0131nda ger\u00e7ekten nerede ya\u015fad\u0131\u011f\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olaca\u011f\u0131z.<\/p>\n<h3>Docker Konteynerlerinde Veri Kal\u0131c\u0131l\u0131\u011f\u0131 Neden Bu Kadar \u00d6nemli?<\/h3>\n<p>Docker konteynerleri, varsay\u0131lan olarak ge\u00e7icidir (ephemeral). Bu, bir konteyner durduruldu\u011funda veya silindi\u011finde, konteynerin dosya sisteminde yap\u0131lan t\u00fcm de\u011fi\u015fikliklerin ve depolanan verilerin de kayboldu\u011fu anlam\u0131na gelir. Modern uygulamalar\u0131n b\u00fcy\u00fck bir \u00e7o\u011funlu\u011fu, \u00e7al\u0131\u015fmak i\u00e7in bir \u015fekilde veri depolamak zorundad\u0131r. \u00d6rne\u011fin, bir e-ticaret uygulamas\u0131n\u0131n \u00fcr\u00fcn katalog bilgileri, m\u00fc\u015fteri verileri veya sipari\u015f ge\u00e7mi\u015fi gibi kritik verileri bir veritaban\u0131nda saklamas\u0131 gerekir. Benzer \u015fekilde, bir blog platformu makaleleri, yorumlar\u0131 ve kullan\u0131c\u0131 profillerini kal\u0131c\u0131 olarak depolamak zorundad\u0131r. E\u011fer bu t\u00fcr uygulamalar\u0131 bir Docker konteyneri i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131r ve verilerin kal\u0131c\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamazsan\u0131z, konteyner yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda veya g\u00fcncellendi\u011finde t\u00fcm de\u011ferli bilgileriniz bir anda buharla\u015fabilir. Bu durum, \u00f6zellikle \u00fcretim ortamlar\u0131nda felaketle sonu\u00e7lanabilecek bir senaryodur.<\/p>\n<p>Veri kal\u0131c\u0131l\u0131\u011f\u0131 (data persistence), konteyner tabanl\u0131 uygulamalar\u0131n g\u00fcvenilir ve s\u00fcrd\u00fcr\u00fclebilir bir \u015fekilde \u00e7al\u0131\u015fabilmesi i\u00e7in temel bir gereksinimdir. Uygulama loglar\u0131 (g\u00fcnl\u00fckleri), yap\u0131land\u0131rma dosyalar\u0131, kullan\u0131c\u0131 taraf\u0131ndan y\u00fcklenen medya dosyalar\u0131 veya bir web uygulamas\u0131n\u0131n oturum verileri gibi bir\u00e7ok farkl\u0131 veri t\u00fcr\u00fc, konteynerin ya\u015fam d\u00f6ng\u00fcs\u00fcnden ba\u011f\u0131ms\u0131z olarak varl\u0131\u011f\u0131n\u0131 s\u00fcrd\u00fcrmelidir. Aksi takdirde, her konteyner yeniden olu\u015fturuldu\u011funda s\u0131f\u0131rdan ba\u015flamak zorunda kal\u0131r\u0131z ki bu da hem kullan\u0131c\u0131 deneyimi hem de operasyonel verimlilik a\u00e7\u0131s\u0131ndan kabul edilemez bir durumdur. \u0130\u015fte bu noktada Docker, veri kal\u0131c\u0131l\u0131\u011f\u0131 sorununu \u00e7\u00f6zmek i\u00e7in iki ana mekanizma sunar: bind mounts ve volumes. Bu mekanizmalar, konteynerin i\u00e7indeki bir dizini, host makinesindeki (konteyneri \u00e7al\u0131\u015ft\u0131ran ana bilgisayar) bir depolama alan\u0131na ba\u011flayarak, konteyner silinse bile verilerin g\u00fcvende kalmas\u0131n\u0131 sa\u011flar. Bu sayede, uygulamalar\u0131n\u0131z\u0131n durumunu (state) koruyabilir, kolayca yedekleyebilir ve hatta konteynerleri farkl\u0131 host&#8217;lar aras\u0131nda ta\u015f\u0131yabilirsiniz. Bu \u00e7\u00f6z\u00fcmler, Docker&#8217;\u0131 sadece ge\u00e7ici i\u015f y\u00fckleri i\u00e7in de\u011fil, ayn\u0131 zamanda kritik ve durum tutan (stateful) uygulamalar i\u00e7in de g\u00fc\u00e7l\u00fc bir platform haline getirir.<\/p>\n<h3>Bind Mounts Nedir ve Yerel Dosya Sisteminizle Nas\u0131l Etkile\u015fir?<\/h3>\n<p>Bind mount&#8217;lar, Docker&#8217;da veri kal\u0131c\u0131l\u0131\u011f\u0131n\u0131 sa\u011flaman\u0131n en basit ve en do\u011frudan yollar\u0131ndan biridir. Temel olarak, host makinesindeki (yani Docker motorunun \u00e7al\u0131\u015ft\u0131\u011f\u0131 bilgisayar) belirli bir dizini veya dosyay\u0131, bir Docker konteynerinin i\u00e7indeki belirli bir dizine veya dosyaya ba\u011flaman\u0131za olanak tan\u0131r. Bu ba\u011flama i\u015flemi \u00e7ift y\u00f6nl\u00fcd\u00fcr; yani hem host makinesinden konteynere hem de konteynerden host makinesine yap\u0131lan de\u011fi\u015fiklikler an\u0131nda senkronize olur ve birbirini etkiler. Konteyner, host dosya sistemindeki bu belirlenen konumu kendi dosya sisteminin bir par\u00e7as\u0131 gibi g\u00f6r\u00fcr ve ona eri\u015febilir. Bu, \u00f6zellikle geli\u015ftirme ortamlar\u0131nda veya yap\u0131land\u0131rma dosyalar\u0131n\u0131 y\u00f6netirken son derece kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>Bind mount&#8217;lar\u0131n \u00e7al\u0131\u015fma \u015fekli olduk\u00e7a \u015feffaft\u0131r. Siz bir bind mount tan\u0131mlad\u0131\u011f\u0131n\u0131zda, Docker sadece host makinesindeki belirtilen yolu al\u0131p konteynerin i\u00e7indeki belirtilen yola &#8220;montajlar&#8221; (mount eder). Docker&#8217;\u0131n bu veri \u00fczerinde herhangi bir y\u00f6netimsel kontrol\u00fc yoktur; t\u00fcm y\u00f6netim host i\u015fletim sisteminin sorumlulu\u011fundad\u0131r. Bu durum, hem bir avantaj hem de bir dezavantaj olabilir. Avantaj\u0131, host dosya sistemine do\u011frudan eri\u015fimin kolayl\u0131\u011f\u0131 ve esnekli\u011fidir. \u00d6rne\u011fin, bir web uygulamas\u0131n\u0131n kaynak kodunu host makinenizde d\u00fczenlerken, bu de\u011fi\u015fikliklerin konteyner i\u00e7indeki \u00e7al\u0131\u015fan uygulamada an\u0131nda yans\u0131mas\u0131n\u0131 sa\u011flayabilirsiniz. Bu, geli\u015ftirme d\u00f6ng\u00fcs\u00fcn\u00fc h\u0131zland\u0131r\u0131r ve s\u00fcrekli olarak konteyneri yeniden olu\u015fturma ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r.<\/p>\n<p>Bind mount&#8217;lar genellikle a\u015fa\u011f\u0131daki senaryolarda tercih edilir:<\/p>\n<p>*   <strong>Geli\u015ftirme Ortamlar\u0131:<\/strong> Kaynak kodu, host makinesinde d\u00fczenlenirken konteynerde \u00e7al\u0131\u015fan uygulama taraf\u0131ndan an\u0131nda eri\u015filebilir olmal\u0131d\u0131r.<br \/>\n*   <strong>Yap\u0131land\u0131rma Dosyalar\u0131:<\/strong> Uygulama yap\u0131land\u0131rma dosyalar\u0131n\u0131 host \u00fczerinde tutarak, birden fazla konteynerin ayn\u0131 yap\u0131land\u0131rmay\u0131 kullanmas\u0131n\u0131 sa\u011flamak veya yap\u0131land\u0131rma de\u011fi\u015fikliklerini kolayca yapmak.<br \/>\n*   <strong>Log Toplama:<\/strong> Konteynerdeki uygulama loglar\u0131n\u0131 host makinesindeki belirli bir dizine yazarak, merkezi bir log y\u00f6netim sistemi taraf\u0131ndan toplanmas\u0131n\u0131 sa\u011flamak.<br \/>\n*   <strong>Host Kaynaklar\u0131na Eri\u015fim:<\/strong> Konteynerin host makinesindeki belirli bir cihaza veya dosyaya eri\u015fmesi gerekti\u011fi durumlarda (\u00f6rne\u011fin, \u00f6zel donan\u0131m s\u00fcr\u00fcc\u00fcleri).<\/p>\n<p>Ancak bind mount&#8217;lar\u0131n baz\u0131 dezavantajlar\u0131 da vard\u0131r. En \u00f6nemlisi, host makinesine s\u0131k\u0131 bir ba\u011f\u0131ml\u0131l\u0131k olu\u015fturmas\u0131d\u0131r. Konteyneri farkl\u0131 bir host&#8217;a ta\u015f\u0131d\u0131\u011f\u0131n\u0131zda, ayn\u0131 dizin yap\u0131s\u0131n\u0131n ve verilerin yeni host \u00fczerinde de mevcut olmas\u0131 gerekir ki bu da ta\u015f\u0131nabilirli\u011fi (portability) azalt\u0131r. Ayr\u0131ca, g\u00fcvenlik a\u00e7\u0131s\u0131ndan da baz\u0131 riskler ta\u015f\u0131r. Konteynerin host dosya sistemine do\u011frudan eri\u015fimi oldu\u011fu i\u00e7in, yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f veya k\u00f6t\u00fc niyetli bir konteyner, host \u00fczerindeki hassas dosyalara eri\u015febilir veya de\u011fi\u015fiklik yapabilir. Bu nedenle, bind mount&#8217;lar\u0131 kullan\u0131rken dikkatli olunmal\u0131 ve sadece g\u00fcvenilen kaynaklar i\u00e7in kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p>Bir bind mount olu\u015fturmak i\u00e7in <code>docker run<\/code> komutunda <code>-v<\/code> veya <code>--mount<\/code> bayra\u011f\u0131n\u0131 kullan\u0131r\u0131z. \u00d6rnek olarak, bir web uygulamas\u0131n\u0131n kaynak kodunu host&#8217;tan konteynere ba\u011flayal\u0131m:<\/p>\n<div class=\"code-container\">\n<pre><code>docker run -d -p 80:80 --name my-nginx-app -v \/path\/to\/host\/html:\/usr\/share\/nginx\/html nginx<\/code><\/pre>\n<\/div>\n<p>Bu komutta:<br \/>\n*   <code>-d<\/code>: Konteyneri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r.<br \/>\n*   <code>-p 80:80<\/code>: Host&#8217;un 80. portunu konteynerin 80. portuna e\u015fler.<br \/>\n*   <code>--name my-nginx-app<\/code>: Konteynere <code>my-nginx-app<\/code> ad\u0131n\u0131 verir.<br \/>\n*   <code>-v \/path\/to\/host\/html:\/usr\/share\/nginx\/html<\/code>: Bu k\u0131s\u0131m bind mount&#8217;u tan\u0131mlar. <code>\/path\/to\/host\/html<\/code> host makinenizdeki HTML dosyalar\u0131n\u0131z\u0131n bulundu\u011fu dizin, <code>\/usr\/share\/nginx\/html<\/code> ise Nginx konteynerinin web sayfalar\u0131n\u0131 sundu\u011fu varsay\u0131lan dizindir. Bu sayede, host&#8217;taki <code>html<\/code> dizinindeki herhangi bir de\u011fi\u015fiklik an\u0131nda konteynerdeki Nginx sunucusunda yans\u0131yacakt\u0131r.<\/p>\n<p>Bind mount&#8217;lar basitlikleri ve do\u011frudan eri\u015fim sa\u011flamalar\u0131 nedeniyle geli\u015ftirme s\u00fcre\u00e7lerinde vazge\u00e7ilmezdir. Ancak \u00fcretim ortamlar\u0131nda veya daha karma\u015f\u0131k veri y\u00f6netimi ihtiya\u00e7lar\u0131nda, Docker volumes genellikle daha g\u00fcvenli ve y\u00f6netilebilir bir se\u00e7enek sunar.<\/p>\n<h3>Docker Volumes Nedir ve Konteyner Veri Y\u00f6netiminde Neden Tercih Edilmelidir?<\/h3>\n<p>Docker volumes, bind mount&#8217;lara k\u0131yasla Docker ekosistemi i\u00e7inde daha entegre ve y\u00f6netilen bir veri kal\u0131c\u0131l\u0131\u011f\u0131 mekanizmas\u0131d\u0131r. Bind mount&#8217;lar do\u011frudan host dosya sistemine ba\u011f\u0131ml\u0131 iken, volumes Docker taraf\u0131ndan \u00f6zel olarak y\u00f6netilen ve host dosya sisteminden soyutlanm\u0131\u015f depolama alanlar\u0131d\u0131r. Docker, volumes&#8217;lar\u0131 host makinesindeki belirli bir konumda (genellikle Linux&#8217;ta <code>\/var\/lib\/docker\/volumes\/<\/code> alt\u0131nda) saklar, ancak bu konumun detaylar\u0131 Docker&#8217;\u0131n kendisi taraf\u0131ndan soyutlan\u0131r ve do\u011frudan m\u00fcdahale edilmesi genellikle \u00f6nerilmez. Bu soyutlama, volumes&#8217;lar\u0131 bind mount&#8217;lara g\u00f6re \u00e7ok daha esnek, g\u00fcvenli ve ta\u015f\u0131nabilir hale getirir.<\/p>\n<p>Volumes, \u00f6zellikle veritabanlar\u0131 gibi kal\u0131c\u0131 ve \u00f6nemli verileri depolayan uygulamalar i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bir volume olu\u015fturdu\u011funuzda, Docker bu volume&#8217;u adland\u0131r\u0131r (named volume) ve bu ad\u0131 kullanarak birden fazla konteynerin ayn\u0131 volume&#8217;a eri\u015fmesini sa\u011flayabilirsiniz. Bu, bir veritaban\u0131 konteynerini silip yeniden olu\u015fturdu\u011funuzda bile verilerinizi kaybetmeden yeni konteynerin eski verilere eri\u015fmeye devam edebilece\u011fi anlam\u0131na gelir. Volumes, Docker&#8217;\u0131n veri y\u00f6netimi i\u00e7in &#8220;tercih edilen&#8221; mekanizmas\u0131 olarak kabul edilir, \u00e7\u00fcnk\u00fc Docker CLI komutlar\u0131 arac\u0131l\u0131\u011f\u0131yla kolayca olu\u015fturulabilir, listelenebilir, incelenebilir ve silinebilirler.<\/p>\n<p>Volumes&#8217;\u0131n temel avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<p>*   <strong>Y\u00f6netilebilirlik:<\/strong> Docker CLI (Komut Sat\u0131r\u0131 Aray\u00fcz\u00fc) \u00fczerinden kolayca y\u00f6netilebilirler. <code>docker volume create<\/code>, <code>docker volume ls<\/code>, <code>docker volume inspect<\/code>, <code>docker volume rm<\/code> gibi komutlarla volumes \u00fczerinde tam kontrol sahibi olursunuz.<br \/>\n*   <strong>Ta\u015f\u0131nabilirlik:<\/strong> Volumes, host makinesine s\u0131k\u0131 s\u0131k\u0131ya ba\u011fl\u0131 de\u011fildir. Bu sayede, bir volume&#8217;u kolayca yedekleyebilir, farkl\u0131 bir host&#8217;a ta\u015f\u0131yabilir veya birden fazla konteyner aras\u0131nda payla\u015fabilirsiniz. Bu \u00f6zellik, \u00f6zellikle orkestrasyon ara\u00e7lar\u0131 (Kubernetes, Docker Swarm) ile \u00e7al\u0131\u015f\u0131rken b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> Volumes, host dosya sisteminden izole edilmi\u015f oldu\u011fu i\u00e7in, konteynerin host \u00fczerindeki di\u011fer dosyalara veya dizinlere yetkisiz eri\u015fimini engeller. Bu, bind mount&#8217;lara g\u00f6re daha g\u00fcvenli bir veri depolama y\u00f6ntemi sunar.<br \/>\n*   <strong>Performans:<\/strong> \u00d6zellikle Linux sistemlerinde, volumes genellikle bind mount&#8217;lara g\u00f6re daha iyi performans g\u00f6sterir. Bu, Docker&#8217;\u0131n volume&#8217;lar\u0131 host dosya sistemi \u00fczerinden do\u011frudan y\u00f6netmesi ve ek bir soyutlama katman\u0131 eklemesi sayesinde ger\u00e7ekle\u015fir.<br \/>\n*   <strong>Veri Yedekleme ve Geri Y\u00fckleme Kolayl\u0131\u011f\u0131:<\/strong> Volumes, yedekleme ve geri y\u00fckleme i\u015flemleri i\u00e7in optimize edilmi\u015ftir. \u00d6zel yedekleme konteynerleri olu\u015fturarak volume verilerini kolayca kopyalayabilir veya geri y\u00fckleyebilirsiniz.<br \/>\n*   <strong>Volume S\u00fcr\u00fcc\u00fcleri (Volume Drivers):<\/strong> Volumes, farkl\u0131 depolama backend&#8217;leri ile entegre olabilir. \u00d6rne\u011fin, bir volume s\u00fcr\u00fcc\u00fcs\u00fc kullanarak verilerinizi a\u011f depolama (NFS), bulut depolama hizmetleri (AWS EBS, Azure Disk) veya di\u011fer harici depolama sistemlerinde saklayabilirsiniz. Bu, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve da\u011f\u0131t\u0131k sistemlerde esneklik sa\u011flar.<\/p>\n<p>Volumes&#8217;\u0131n dezavantaj\u0131 olarak, host dosya sistemine do\u011frudan eri\u015fimin olmamas\u0131 g\u00f6sterilebilir. Geli\u015ftirme s\u00fcrecinde kod de\u011fi\u015fikliklerini an\u0131nda g\u00f6rmek isteyen geli\u015ftiriciler i\u00e7in bu durum bir k\u0131s\u0131tlama olabilir. Ancak bu, \u00fcretim ortamlar\u0131nda genellikle bir avantaj olarak kabul edilir, \u00e7\u00fcnk\u00fc veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve g\u00fcvenli\u011fini art\u0131r\u0131r.<\/p>\n<p>Bir volume olu\u015fturmak ve kullanmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyebiliriz:<\/p>\n<p>\u00d6nce bir named volume olu\u015ftural\u0131m:<\/p>\n<div class=\"code-container\">\n<pre><code>docker volume create my-db-data<\/code><\/pre>\n<\/div>\n<p>Ard\u0131ndan, bu volume&#8217;u bir PostgreSQL veritaban\u0131 konteynerine ba\u011flayal\u0131m:<\/p>\n<div class=\"code-container\">\n<pre><code>docker run -d --name my-postgres-db -e POSTGRES_PASSWORD=mysecretpassword -v my-db-data:\/var\/lib\/postgresql\/data postgres<\/code><\/pre>\n<\/div>\n<p>Bu komutta:<br \/>\n*   <code>docker volume create my-db-data<\/code>: <code>my-db-data<\/code> ad\u0131nda yeni bir volume olu\u015fturur.<br \/>\n*   <code>-v my-db-data:\/var\/lib\/postgresql\/data<\/code>: Bu k\u0131s\u0131m volume ba\u011flamas\u0131n\u0131 tan\u0131mlar. <code>my-db-data<\/code> olu\u015fturdu\u011fumuz volume&#8217;un ad\u0131, <code>\/var\/lib\/postgresql\/data<\/code> ise PostgreSQL konteynerinin verilerini depolad\u0131\u011f\u0131 varsay\u0131lan dizindir. Bu sayede, veritaban\u0131 verileri <code>my-db-data<\/code> volume&#8217;unda kal\u0131c\u0131 olarak saklanacak ve konteyner silinse bile kaybolmayacakt\u0131r.<\/p>\n<p>Volumes, \u00f6zellikle durum tutan uygulamalar i\u00e7in g\u00fcvenilir ve \u00f6l\u00e7eklenebilir bir veri depolama \u00e7\u00f6z\u00fcm\u00fc sunar. Konteyner tabanl\u0131 uygulamalar\u0131n\u0131z\u0131 \u00fcretim ortam\u0131na ta\u015f\u0131rken, veri kal\u0131c\u0131l\u0131\u011f\u0131 ve y\u00f6netilebilirli\u011fi a\u00e7\u0131s\u0131ndan volumes&#8217;lar\u0131 tercih etmek, uzun vadede size b\u00fcy\u00fck kolayl\u0131klar sa\u011flayacakt\u0131r.<\/p>\n<h3>Bind Mounts ve Volumes: Temel Farklar ve Kar\u015f\u0131la\u015ft\u0131rmal\u0131 Analiz<\/h3>\n<p>Docker ekosisteminde veri kal\u0131c\u0131l\u0131\u011f\u0131 i\u00e7in sunulan bind mount&#8217;lar ve volumes, benzer ama\u00e7lara hizmet etse de, temel mimarileri, y\u00f6netim \u015fekilleri ve en iyi kullan\u0131m senaryolar\u0131 a\u00e7\u0131s\u0131ndan \u00f6nemli farkl\u0131l\u0131klar g\u00f6sterir. Do\u011fru veri depolama mekanizmas\u0131n\u0131 se\u00e7mek, uygulaman\u0131z\u0131n performans\u0131n\u0131, g\u00fcvenli\u011fini ve ta\u015f\u0131nabilirli\u011fini do\u011frudan etkiler. Bu b\u00f6l\u00fcmde, iki mekanizmay\u0131 \u00e7e\u015fitli a\u00e7\u0131lardan kar\u015f\u0131la\u015ft\u0131rarak hangi durumda hangisinin daha uygun oldu\u011funu anlaman\u0131za yard\u0131mc\u0131 olaca\u011f\u0131z.<\/p>\n<p>A\u015fa\u011f\u0131daki tablo, bind mount&#8217;lar ve volumes aras\u0131ndaki temel farklar\u0131 \u00f6zetlemektedir:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th>Bind Mounts<\/th>\n<th>Volumes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Y\u00f6netim<\/td>\n<td>Host i\u015fletim sistemi taraf\u0131ndan y\u00f6netilir. Docker&#8217;\u0131n do\u011frudan kontrol\u00fc yoktur.<\/td>\n<td>Docker motoru taraf\u0131ndan y\u00f6netilir. Docker CLI ile kontrol edilebilir.<\/td>\n<\/tr>\n<tr>\n<td>Yerle\u015fim<\/td>\n<td>Host dosya sisteminde belirli bir yola do\u011frudan ba\u011flan\u0131r.<\/td>\n<td>Host dosya sisteminde Docker taraf\u0131ndan y\u00f6netilen \u00f6zel bir dizinde saklan\u0131r (genellikle <code>\/var\/lib\/docker\/volumes\/<\/code> alt\u0131nda).<\/td>\n<\/tr>\n<tr>\n<td>Olu\u015fturma<\/td>\n<td>Host \u00fczerinde bir dizin veya dosya zaten mevcut olmal\u0131d\u0131r.<\/td>\n<td><code>docker volume create<\/code> komutuyla veya Dockerfile\/Compose i\u00e7inde tan\u0131mlanarak olu\u015fturulur.<\/td>\n<\/tr>\n<tr>\n<td>Ta\u015f\u0131nabilirlik<\/td>\n<td>D\u00fc\u015f\u00fck. Konteyneri farkl\u0131 bir host&#8217;a ta\u015f\u0131rken, verilerin de host \u00fczerinde ayn\u0131 yolda mevcut olmas\u0131 gerekir.<\/td>\n<td>Y\u00fcksek. Volumes, Docker taraf\u0131ndan y\u00f6netildi\u011fi i\u00e7in farkl\u0131 host&#8217;lar aras\u0131nda veya konteynerler aras\u0131nda kolayca ta\u015f\u0131nabilir ve payla\u015f\u0131labilir.<\/td>\n<\/tr>\n<tr>\n<td>G\u00fcvenlik<\/td>\n<td>D\u00fc\u015f\u00fck riskli senaryolarda kullan\u0131labilir, ancak konteynerin host dosya sistemine do\u011frudan eri\u015fimi nedeniyle potansiyel g\u00fcvenlik riskleri ta\u015f\u0131r.<\/td>\n<td>Y\u00fcksek. Host dosya sisteminden soyutlanm\u0131\u015f oldu\u011fu i\u00e7in daha g\u00fcvenli bir ortam sunar.<\/td>\n<\/tr>\n<tr>\n<td>Performans<\/td>\n<td>Genellikle volumes&#8217;a g\u00f6re biraz daha d\u00fc\u015f\u00fckt\u00fcr (\u00f6zellikle b\u00fcy\u00fck I\/O i\u015flemleri i\u00e7in).<\/td>\n<td>Genellikle bind mount&#8217;lara g\u00f6re daha iyi performans sunar, \u00f6zellikle Linux&#8217;ta.<\/td>\n<\/tr>\n<tr>\n<td>Kullan\u0131m Alanlar\u0131<\/td>\n<td>Geli\u015ftirme ortamlar\u0131 (kod senkronizasyonu), yap\u0131land\u0131rma dosyalar\u0131, log toplama.<\/td>\n<td>\u00dcretim ortam\u0131ndaki veritabanlar\u0131, kal\u0131c\u0131 depolama gerektiren uygulamalar, yedekleme ve ta\u015f\u0131ma i\u015flemleri.<\/td>\n<\/tr>\n<tr>\n<td>Dosya \u0130zinleri<\/td>\n<td>Host dosya sistemindeki izinlere do\u011frudan ba\u011fl\u0131d\u0131r.<\/td>\n<td>Docker, volume&#8217;un ilk olu\u015fturuldu\u011funda konteynerin izinleriyle e\u015fle\u015fen varsay\u0131lan izinler atayabilir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Hangi Durumda Hangisi Tercih Edilmeli?<\/strong><\/p>\n<p>Bu kar\u015f\u0131la\u015ft\u0131rmal\u0131 analizden de anla\u015f\u0131laca\u011f\u0131 \u00fczere, bind mount&#8217;lar ve volumes farkl\u0131 kullan\u0131m senaryolar\u0131 i\u00e7in optimize edilmi\u015ftir:<\/p>\n<p>*   <strong>Geli\u015ftirme Ortamlar\u0131 i\u00e7in Bind Mounts:<\/strong><br \/>\n    E\u011fer bir uygulama geli\u015ftiriyorsan\u0131z ve kaynak kodunuzda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri konteynerde \u00e7al\u0131\u015fan uygulaman\u0131zda an\u0131nda g\u00f6rmek istiyorsan\u0131z, bind mount&#8217;lar idealdir. Kodunuzu host makinesinde bir IDE (Entegre Geli\u015ftirme Ortam\u0131) ile d\u00fczenlersiniz ve bu de\u011fi\u015fiklikler, konteynerdeki uygulama taraf\u0131ndan do\u011frudan alg\u0131lan\u0131r. Bu, geli\u015ftirme d\u00f6ng\u00fcs\u00fcn\u00fc inan\u0131lmaz derecede h\u0131zland\u0131r\u0131r.<br \/>\n    \u00d6rne\u011fin, bir Node.js veya Python uygulamas\u0131n\u0131n kodunu konteynerde \u00e7al\u0131\u015ft\u0131r\u0131rken, <code>node index.js<\/code> veya <code>python app.py<\/code> komutuyla her de\u011fi\u015fiklikte uygulaman\u0131n otomatik olarak yeniden y\u00fcklenmesini sa\u011flayabilirsiniz.<\/p>\n<p>*   <strong>\u00dcretim Ortamlar\u0131 i\u00e7in Volumes:<\/strong><br \/>\n    \u00dcretim ortam\u0131nda \u00e7al\u0131\u015fan veritabanlar\u0131, mesaj kuyruklar\u0131 veya kal\u0131c\u0131 depolama gerektiren di\u011fer hizmetler i\u00e7in volumes kesinlikle tercih edilmelidir. Volumes, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc, yedeklenebilirli\u011fi ve ta\u015f\u0131nabilirli\u011fi garanti eder. Bir veritaban\u0131 konteynerini g\u00fcncelledi\u011finizde veya yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zda, volume \u00fczerindeki veriler g\u00fcvende kal\u0131r ve yeni konteyner taraf\u0131ndan kullan\u0131lmaya devam eder. Ayr\u0131ca, Docker Swarm veya Kubernetes gibi orkestrasyon ara\u00e7lar\u0131 ile \u00e7al\u0131\u015f\u0131rken, volumes bu platformlarla daha iyi entegre olur ve da\u011f\u0131t\u0131k sistemlerde veri y\u00f6netimini kolayla\u015ft\u0131r\u0131r. Volume s\u00fcr\u00fcc\u00fcleri sayesinde, verilerinizi a\u011f depolama veya bulut hizmetleri gibi harici kaynaklarda saklayarak daha y\u00fcksek \u00f6l\u00e7eklenebilirlik ve dayan\u0131kl\u0131l\u0131k elde edebilirsiniz.<\/p>\n<p>\u00d6zetle, bind mount&#8217;lar basitlik ve host dosya sistemine do\u011frudan eri\u015fim sa\u011flad\u0131\u011f\u0131 i\u00e7in geli\u015ftirme s\u00fcre\u00e7lerinde ve belirli yap\u0131land\u0131rma dosyalar\u0131n\u0131 payla\u015fmada kullan\u0131\u015fl\u0131d\u0131r. Volumes ise Docker taraf\u0131ndan y\u00f6netilen, daha g\u00fcvenli, ta\u015f\u0131nabilir ve performansl\u0131 bir \u00e7\u00f6z\u00fcm sunarak \u00fcretim ortamlar\u0131ndaki kal\u0131c\u0131 veri ihtiya\u00e7lar\u0131 i\u00e7in standart hale gelmi\u015ftir. Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131n\u0131 ve kullan\u0131m senaryosunu g\u00f6z \u00f6n\u00fcnde bulundurarak do\u011fru se\u00e7imi yapmak, Docker deneyiminizi optimize etmenin anahtar\u0131d\u0131r.<\/p>\n<h3>Ger\u00e7ek D\u00fcnya Senaryolar\u0131nda Volumes ve Bind Mounts Kullan\u0131m\u0131: Vaka Analizleri<\/h3>\n<p>Teorik bilgilerin \u00f6tesine ge\u00e7erek, bind mount&#8217;lar ve volumes&#8217;\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 inceleyelim. Bu vaka analizleri, hangi durumlarda hangi veri depolama mekanizmas\u0131n\u0131n daha uygun oldu\u011funu somut \u00f6rneklerle anlaman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p><strong>Vaka 1: Bir Web Uygulamas\u0131 Geli\u015ftirme Ortam\u0131<\/strong><\/p>\n<p>*   <strong>Sorun:<\/strong> Bir geli\u015ftirici, React tabanl\u0131 bir \u00f6n y\u00fcz uygulamas\u0131 ve Node.js tabanl\u0131 bir arka y\u00fcz uygulamas\u0131 geli\u015ftiriyor. Kod de\u011fi\u015fikliklerinin host makinesinde yap\u0131ld\u0131\u011f\u0131nda, konteynerde \u00e7al\u0131\u015fan uygulamada an\u0131nda yans\u0131mas\u0131n\u0131 istiyor. Geli\u015ftirme s\u00fcrecinde s\u0131k s\u0131k kod de\u011fi\u015fikli\u011fi yap\u0131ld\u0131\u011f\u0131 i\u00e7in, her de\u011fi\u015fiklikte konteyneri yeniden olu\u015fturmak zaman kayb\u0131na neden olacakt\u0131r.<\/p>\n<p>*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu senaryoda bind mount&#8217;lar idealdir. Geli\u015ftirici, hem \u00f6n y\u00fcz hem de arka y\u00fcz uygulamalar\u0131n\u0131n kaynak kodunu i\u00e7eren dizinleri, ilgili konteynerlere bind mount olarak ba\u011flayabilir.<\/p>\n<p>*   <strong>Uygulama Ad\u0131mlar\u0131 ve Kod \u00d6rne\u011fi:<\/strong><br \/>\n    1.  Host makinesinde <code>my-app<\/code> ad\u0131nda bir ana dizin olu\u015fturulur. Bu dizin i\u00e7inde <code>frontend<\/code> ve <code>backend<\/code> ad\u0131nda iki alt dizin bulunur.<br \/>\n    2.  <code>frontend<\/code> dizinine React uygulamas\u0131n\u0131n kodu, <code>backend<\/code> dizinine ise Node.js uygulamas\u0131n\u0131n kodu yerle\u015ftirilir.<br \/>\n    3.  <code>docker-compose.yml<\/code> dosyas\u0131 kullan\u0131larak her iki uygulama i\u00e7in konteynerler tan\u0131mlan\u0131r ve kaynak kodlar\u0131 bind mount edilir.<\/p>\n<div class=\"code-container\">\n<pre><code>version: '3.8'\nservices:\n  frontend:\n    build: .\/frontend\n    ports:\n      - \"3000:3000\"\n    volumes:\n      - .\/frontend:\/app\n      - \/app\/node_modules # node_modules'in host'tan bind mount edilmesini engeller\n  backend:\n    build: .\/backend\n    ports:\n      - \"5000:5000\"\n    volumes:\n      - .\/backend:\/app\n      - \/app\/node_modules # node_modules'in host'tan bind mount edilmesini engeller<\/code><\/pre>\n<\/p><\/div>\n<p>Bu yap\u0131land\u0131rmada, <code>.\/frontend:\/app<\/code> ve <code>.\/backend:\/app<\/code> bind mount&#8217;lar\u0131, host makinesindeki kaynak kodunu konteynerdeki uygulama dizinine ba\u011flar. <code>\/app\/node_modules<\/code> sat\u0131r\u0131 ise, konteynerin kendi <code>node_modules<\/code> dizinini kullanmas\u0131n\u0131 sa\u011flayarak, host&#8217;taki <code>node_modules<\/code>&#8216;in bind mount edilmesini engeller (bu, farkl\u0131 i\u015fletim sistemi mimarilerinden kaynaklanan ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nlemek i\u00e7in yayg\u0131n bir pratiktir).<\/p>\n<p>Art\u0131k geli\u015ftirici, host makinesinde kodu d\u00fczenledi\u011finde, konteynerde \u00e7al\u0131\u015fan uygulamalar an\u0131nda g\u00fcncellenecek ve bu da h\u0131zl\u0131 bir geli\u015ftirme d\u00f6ng\u00fcs\u00fc sa\u011flayacakt\u0131r.<\/p>\n<p><strong>Vaka 2: \u00dcretim Ortam\u0131nda Bir Veritaban\u0131 Konteyneri<\/strong><\/p>\n<p>*   <strong>Sorun:<\/strong> Bir e-ticaret uygulamas\u0131n\u0131n \u00fcretim ortam\u0131nda PostgreSQL veritaban\u0131 kullan\u0131l\u0131yor. Veritaban\u0131 verilerinin kal\u0131c\u0131 olmas\u0131, konteyner g\u00fcncellense veya yeniden ba\u015flat\u0131lsa bile kaybolmamas\u0131 gerekiyor. Ayr\u0131ca, verilerin kolayca yedeklenebilir ve gerekti\u011finde geri y\u00fcklenebilir olmas\u0131 da kritik \u00f6neme sahip.<\/p>\n<p>*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu senaryoda named volume&#8217;lar en uygun \u00e7\u00f6z\u00fcmd\u00fcr. Volume, Docker taraf\u0131ndan y\u00f6netilir, g\u00fcvenli ve ta\u015f\u0131nabilirdir.<\/p>\n<p>*   <strong>Uygulama Ad\u0131mlar\u0131 ve Kod \u00d6rne\u011fi:<\/strong><br \/>\n    1.  <code>docker-compose.yml<\/code> dosyas\u0131 kullan\u0131larak PostgreSQL servisi tan\u0131mlan\u0131r ve bir named volume ile verileri kal\u0131c\u0131 hale getirilir.<\/p>\n<div class=\"code-container\">\n<pre><code>version: '3.8'\nservices:\n  db:\n    image: postgres:13\n    environment:\n      POSTGRES_DB: ecom_db\n      POSTGRES_USER: admin\n      POSTGRES_PASSWORD: mysecretpassword\n    ports:\n      - \"5432:5432\"\n    volumes:\n      - db_data:\/var\/lib\/postgresql\/data\nvolumes:\n  db_data:<\/code><\/pre>\n<\/p><\/div>\n<p>Burada <code>db_data:\/var\/lib\/postgresql\/data<\/code> sat\u0131r\u0131, <code>db_data<\/code> ad\u0131nda bir named volume olu\u015fturur ve bu volume&#8217;u PostgreSQL&#8217;in veri dizinine ba\u011flar. <code>volumes: db_data:<\/code> k\u0131sm\u0131 ise <code>db_data<\/code> volume&#8217;unun tan\u0131m\u0131n\u0131 yapar.<\/p>\n<p>Bu yap\u0131land\u0131rma sayesinde, <code>db<\/code> servisi yeniden olu\u015fturulsa bile, <code>db_data<\/code> volume&#8217;undaki veriler kal\u0131c\u0131 olarak korunacak ve veri kayb\u0131 ya\u015fanmayacakt\u0131r. Ayr\u0131ca, bu volume kolayca yedeklenebilir veya farkl\u0131 bir host&#8217;a ta\u015f\u0131nabilir.<\/p>\n<p><strong>Vaka 3: Log Y\u00f6netimi ve Yap\u0131land\u0131rma Dosyalar\u0131<\/strong><\/p>\n<p>*   <strong>Sorun:<\/strong> Bir mikroservis mimarisinde \u00e7al\u0131\u015fan birden fazla konteynerin loglar\u0131n\u0131 merkezi bir yerde toplamak ve host makinesindeki belirli bir yap\u0131land\u0131rma dosyas\u0131n\u0131 t\u00fcm konteynerlerle payla\u015fmak gerekiyor.<\/p>\n<p>*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Log toplama i\u00e7in bind mount&#8217;lar, yap\u0131land\u0131rma dosyalar\u0131 i\u00e7in ise duruma g\u00f6re bind mount&#8217;lar veya volumes kullan\u0131labilir.<\/p>\n<p>*   <strong>Uygulama Ad\u0131mlar\u0131 ve Kod \u00d6rne\u011fi:<\/strong><br \/>\n    1.  <strong>Loglar i\u00e7in Bind Mount:<\/strong> Her mikroservis konteynerinin loglar\u0131n\u0131 host makinesindeki ayr\u0131 bir log dizinine ba\u011flayabiliriz.<\/p>\n<div class=\"code-container\">\n<pre><code>version: '3.8'\nservices:\n  service_a:\n    image: my-service-a-image\n    volumes:\n      - .\/logs\/service_a:\/var\/log\/app\n  service_b:\n    image: my-service-b-image\n    volumes:\n      - .\/logs\/service_b:\/var\/log\/app<\/code><\/pre>\n<\/p><\/div>\n<p>Bu sayede, host&#8217;taki <code>.\/logs\/service_a<\/code> ve <code>.\/logs\/service_b<\/code> dizinlerinde her servisin loglar\u0131 ayr\u0131 ayr\u0131 toplanabilir ve bir log toplama arac\u0131 (\u00f6rne\u011fin, ELK Stack veya Grafana Loki) taraf\u0131ndan kolayca i\u015flenebilir.<\/p>\n<p>    2.  <strong>Yap\u0131land\u0131rma Dosyalar\u0131 i\u00e7in Bind Mount (tek bir dosya):<\/strong> E\u011fer tek bir yap\u0131land\u0131rma dosyas\u0131n\u0131 konteynerle payla\u015fmak istiyorsak, bind mount kullanabiliriz.<\/p>\n<div class=\"code-container\">\n<pre><code>version: '3.8'\nservices:\n  nginx:\n    image: nginx\n    ports:\n      - \"80:80\"\n    volumes:\n      - .\/nginx.conf:\/etc\/nginx\/nginx.conf:ro # Sadece okunur (read-only) mount<\/code><\/pre>\n<\/p><\/div>\n<p>Burada <code>nginx.conf<\/code> dosyas\u0131 host&#8217;tan konteynerdeki Nginx yap\u0131land\u0131rma dizinine <code>ro<\/code> (read-only &#8211; sadece okunur) olarak ba\u011flanm\u0131\u015ft\u0131r. Bu, konteynerin yap\u0131land\u0131rma dosyas\u0131n\u0131 de\u011fi\u015ftirmesini engeller ve g\u00fcvenli\u011fi art\u0131r\u0131r.<\/p>\n<p>Bu vaka analizleri, bind mount&#8217;lar ve volumes&#8217;\u0131n ne kadar esnek oldu\u011funu ve farkl\u0131 ihtiya\u00e7lara nas\u0131l cevap verebildi\u011fini g\u00f6stermektedir. Geli\u015ftirme h\u0131z\u0131n\u0131 art\u0131rmak i\u00e7in bind mount&#8217;lar\u0131, \u00fcretim ortamlar\u0131nda veri kal\u0131c\u0131l\u0131\u011f\u0131 ve g\u00fcvenli\u011fi i\u00e7in ise volumes&#8217;lar\u0131 tercih etmek en iyi uygulamad\u0131r.<\/p>\n<h3>Volumes ve Bind Mounts ile \u0130leri D\u00fczey Veri Y\u00f6netimi \u0130pu\u00e7lar\u0131<\/h3>\n<p>Docker&#8217;da veri y\u00f6netimi sadece temel volumes ve bind mounts kavramlar\u0131n\u0131 anlamakla kalmaz, ayn\u0131 zamanda bu mekanizmalar\u0131 daha verimli ve g\u00fcvenli kullanmak i\u00e7in baz\u0131 ileri d\u00fczey ipu\u00e7lar\u0131n\u0131 da i\u00e7erir. Bu b\u00f6l\u00fcmde, deneyimli kullan\u0131c\u0131lar i\u00e7in pratik bilgiler ve en iyi uygulamalar sunaca\u011f\u0131z.<\/p>\n<p>*   <strong>Volume Yedekleme ve Geri Y\u00fckleme:<\/strong><br \/>\n    Volumes&#8217;daki verilerinizi yedeklemek ve gerekti\u011finde geri y\u00fcklemek, veri g\u00fcvenli\u011fi a\u00e7\u0131s\u0131ndan hayati \u00f6neme sahiptir. Docker, bu i\u015flemler i\u00e7in do\u011frudan bir komut sunmasa da, ge\u00e7ici bir konteyner kullanarak kolayca ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<p>    <strong>Yedekleme \u00d6rne\u011fi:<\/strong> Bir volume&#8217;daki verileri host makinenizdeki bir dizine yedeklemek i\u00e7in a\u015fa\u011f\u0131daki gibi bir komut kullanabilirsiniz:<\/p>\n<div class=\"code-container\">\n<pre><code>docker run --rm --volumes-from my-db-container -v $(pwd):\/backup ubuntu tar cvf \/backup\/backup.tar \/var\/lib\/postgresql\/data<\/code><\/pre>\n<\/p><\/div>\n<p>Bu komutta:<\/p>\n<ul>\n<li><code>--rm<\/code>: Yedekleme i\u015flemi bittikten sonra konteynerin otomatik olarak silinmesini sa\u011flar.<\/li>\n<li><code>--volumes-from my-db-container<\/code>: <code>my-db-container<\/code> adl\u0131 konteynerin kulland\u0131\u011f\u0131 t\u00fcm volume&#8217;lar\u0131 bu yedekleme konteynerine ba\u011flar.<\/li>\n<li><code>-v $(pwd):\/backup<\/code>: Host makinesindeki mevcut \u00e7al\u0131\u015fma dizinini (<code>$(pwd)<\/code>) yedekleme konteynerinin <code>\/backup<\/code> dizinine bind mount eder. Yedekleme dosyas\u0131 buraya yaz\u0131lacakt\u0131r.<\/li>\n<li><code>ubuntu tar cvf \/backup\/backup.tar \/var\/lib\/postgresql\/data<\/code>: Ubuntu imaj\u0131n\u0131 kullanarak <code>tar<\/code> komutu ile <code>my-db-container<\/code>&#8216;\u0131n <code>\/var\/lib\/postgresql\/data<\/code> dizinindeki verileri s\u0131k\u0131\u015ft\u0131r\u0131r ve <code>\/backup\/backup.tar<\/code> dosyas\u0131na yazar.<\/li>\n<\/ul>\n<p>    <strong>Geri Y\u00fckleme \u00d6rne\u011fi:<\/strong> Yedeklenen bir dosyay\u0131 yeni bir volume&#8217;a geri y\u00fcklemek i\u00e7in benzer bir yakla\u015f\u0131m izlenebilir:<\/p>\n<div class=\"code-container\">\n<pre><code>docker run --rm -v my-new-db-data:\/var\/lib\/postgresql\/data -v $(pwd):\/backup ubuntu tar xvf \/backup\/backup.tar -C \/var\/lib\/postgresql\/data<\/code><\/pre>\n<\/p><\/div>\n<p>Bu komut, <code>my-new-db-data<\/code> adl\u0131 volume&#8217;a yedeklenen verileri a\u00e7arak geri y\u00fckler.<\/p>\n<p>*   <strong>Volume S\u00fcr\u00fcc\u00fcleri (Volume Drivers):<\/strong><br \/>\n    Varsay\u0131lan olarak Docker, yerel dosya sistemini kullanan <code>local<\/code> volume s\u00fcr\u00fcc\u00fcs\u00fcn\u00fc kullan\u0131r. Ancak, Docker, harici depolama sistemleriyle entegrasyon sa\u011flamak i\u00e7in volume s\u00fcr\u00fcc\u00fclerini destekler. Bu s\u00fcr\u00fcc\u00fcler, verilerinizi a\u011f depolama (NFS, SMB), bulut depolama hizmetleri (AWS EBS, Azure Disk, Google Persistent Disk) veya di\u011fer depolama \u00e7\u00f6z\u00fcmlerinde saklaman\u0131za olanak tan\u0131r. \u00d6zellikle da\u011f\u0131t\u0131k sistemlerde ve y\u00fcksek eri\u015filebilirlik gerektiren senaryolarda volume s\u00fcr\u00fcc\u00fcleri kritik \u00f6neme sahiptir. \u00d6rne\u011fin, bir <code>rexray<\/code> veya <code>flocker<\/code> s\u00fcr\u00fcc\u00fcs\u00fc kullanarak, bir konteynerin farkl\u0131 bir host&#8217;a ta\u015f\u0131nd\u0131\u011f\u0131nda bile verilerinin ayn\u0131 depolama biriminde kalmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p>*   <strong>Anonim Volumes ve Named Volumes:<\/strong><br \/>\n    *   <strong>Named Volumes (Adland\u0131r\u0131lm\u0131\u015f Volumes):<\/strong> Yukar\u0131daki \u00f6rneklerde kulland\u0131\u011f\u0131m\u0131z gibi, a\u00e7\u0131k\u00e7a bir isim verdi\u011fimiz volume&#8217;lard\u0131r (<code>my-db-data<\/code>). Bunlar Docker taraf\u0131ndan y\u00f6netilir ve ya\u015fam d\u00f6ng\u00fcleri konteynerden ba\u011f\u0131ms\u0131zd\u0131r. Kal\u0131c\u0131 ve \u00f6nemli veriler i\u00e7in her zaman named volumes kullanmal\u0131s\u0131n\u0131z.<br \/>\n    *   <strong>Anonim Volumes (Anonymous Volumes):<\/strong> Bir volume&#8217;a isim vermedi\u011finizde Docker otomatik olarak rastgele bir isim atar. \u00d6rne\u011fin, <code>docker run -v \/app\/data my-image<\/code> komutu anonim bir volume olu\u015fturur. Anonim volumes, genellikle ge\u00e7ici veya \u00f6nemsiz veriler i\u00e7in kullan\u0131l\u0131r (\u00f6rne\u011fin, derleme s\u0131ras\u0131nda olu\u015fturulan \u00f6nbellek dosyalar\u0131). Konteyner silindi\u011finde, Docker genellikle anonim volume&#8217;lar\u0131 da siler (e\u011fer <code>docker rm -v<\/code> ile silinirse). Kal\u0131c\u0131 veri i\u00e7in anonim volumes kullanmaktan ka\u00e7\u0131n\u0131n.<\/p>\n<p>*   <strong>Dosya \u0130zinleri (Permissions):<\/strong><br \/>\n    Bind mount&#8217;lar veya volumes kullan\u0131rken dosya izinleri sorunlar\u0131 s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan bir durumdur. Konteyner i\u00e7indeki uygulaman\u0131n, ba\u011flanan dizine yazma veya okuma iznine sahip olmas\u0131 gerekir. Bu sorunlar\u0131 \u00e7\u00f6zmek i\u00e7in:<br \/>\n    *   <strong>Host \u00fczerinde izinleri ayarlay\u0131n:<\/strong> Bind mount kullan\u0131yorsan\u0131z, host makinesinde ba\u011flad\u0131\u011f\u0131n\u0131z dizinin izinlerini konteynerdeki kullan\u0131c\u0131n\u0131n UID\/GID&#8217;sine (Kullan\u0131c\u0131 Kimli\u011fi\/Grup Kimli\u011fi) uygun \u015fekilde ayarlayabilirsiniz (\u00f6rne\u011fin, <code>sudo chown -R 1000:1000 \/path\/to\/data<\/code>).<br \/>\n    *   <strong>Konteyner i\u00e7inde kullan\u0131c\u0131 belirleyin:<\/strong> <code>docker run --user &lt;UID&gt;:&lt;GID&gt; ...<\/code> komutuyla konteynerin belirli bir kullan\u0131c\u0131\/grup olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayabilirsiniz.<br \/>\n    *   <strong>Dockerfile i\u00e7inde izinleri ayarlay\u0131n:<\/strong> Uygulama imaj\u0131n\u0131 olu\u015ftururken Dockerfile i\u00e7inde <code>USER<\/code> komutunu kullanarak veya <code>chown<\/code> komutuyla dizin izinlerini ayarlayabilirsiniz.<\/p>\n<p>*   <strong>Docker Compose ile Y\u00f6netim:<\/strong><br \/>\n    \u00c7oklu konteyner uygulamalar\u0131nda volumes ve bind mount&#8217;lar\u0131 y\u00f6netmenin en etkili yolu Docker Compose kullanmakt\u0131r. Compose dosyalar\u0131, t\u00fcm servislerinizi, a\u011flar\u0131n\u0131z\u0131 ve volumes&#8217;lar\u0131n\u0131z\u0131 tek bir dosyada tan\u0131mlaman\u0131za olanak tan\u0131r.<\/p>\n<p>    <strong>\u00d6rnek Docker Compose Tan\u0131m\u0131:<\/strong><\/p>\n<div class=\"code-container\">\n<pre><code>version: '3.8'\nservices:\n  web:\n    image: nginx\n    ports:\n      - \"80:80\"\n    volumes:\n      - .\/nginx.conf:\/etc\/nginx\/nginx.conf:ro  # Bind mount (read-only)\n      - web-data:\/usr\/share\/nginx\/html        # Named volume\n  db:\n    image: postgres\n    environment:\n      POSTGRES_PASSWORD: mysecretpassword\n    volumes:\n      - db-data:\/var\/lib\/postgresql\/data      # Named volume\nvolumes:\n  web-data:\n  db-data:<\/code><\/pre>\n<\/p><\/div>\n<p>Bu \u00f6rnekte:<\/p>\n<ul>\n<li><code>web<\/code> servisi hem bir bind mount (<code>nginx.conf<\/code> dosyas\u0131 i\u00e7in) hem de bir named volume (<code>web-data<\/code>) kullan\u0131r. Bind mount <code>:ro<\/code> ile sadece okunur olarak i\u015faretlenmi\u015ftir.<\/li>\n<li><code>db<\/code> servisi ise <code>db-data<\/code> ad\u0131nda bir named volume kullan\u0131r.<\/li>\n<li>En alttaki <code>volumes:<\/code> blo\u011fu, <code>web-data<\/code> ve <code>db-data<\/code> named volume&#8217;lar\u0131n\u0131 tan\u0131mlar.<\/li>\n<\/ul>\n<p>Docker Compose ile bu \u015fekilde tan\u0131mlama yapmak, karma\u015f\u0131k uygulamalar\u0131n veri y\u00f6netimini basitle\u015ftirir ve daha d\u00fczenli hale getirir.<\/p>\n<p>Bu ileri d\u00fczey ipu\u00e7lar\u0131, Docker&#8217;da veri y\u00f6netimi stratejinizi g\u00fc\u00e7lendirerek uygulamalar\u0131n\u0131z\u0131n daha sa\u011flam, g\u00fcvenli ve bak\u0131m\u0131 kolay olmas\u0131n\u0131 sa\u011flayacakt\u0131r. Veri kal\u0131c\u0131l\u0131\u011f\u0131, konteyner tabanl\u0131 uygulamalar\u0131n temel ta\u015flar\u0131ndan biridir ve bu mekanizmalar\u0131 ustaca kullanmak, DevOps s\u00fcre\u00e7lerinizde \u00f6nemli bir fark yaratacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Docker konteynerleri, uygulamalar\u0131 izole etme ve ta\u015f\u0131nabilir hale getirme konusunda devrim yarat\u0131rken, verilerin kal\u0131c\u0131l\u0131\u011f\u0131 konusu her zaman kritik bir meydan okuma olmu\u015ftur. Bu makalede, Docker&#8217;da veri y\u00f6netimi i\u00e7in iki temel mekanizma olan bind mount&#8217;lar ve volumes&#8217;\u0131 derinlemesine inceledik. Bind mount&#8217;lar, host dosya sistemine do\u011frudan eri\u015fim sa\u011flayarak \u00f6zellikle geli\u015ftirme ortamlar\u0131nda ve yap\u0131land\u0131rma dosyalar\u0131n\u0131 payla\u015fmada basit ve etkili bir \u00e7\u00f6z\u00fcm sunar. Kod de\u011fi\u015fikliklerinin an\u0131nda yans\u0131mas\u0131 gibi avantajlar\u0131yla geli\u015ftirme h\u0131z\u0131n\u0131 art\u0131r\u0131r. Ancak, host ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 ve potansiyel g\u00fcvenlik riskleri nedeniyle \u00fcretim ortamlar\u0131nda kullan\u0131m\u0131 s\u0131n\u0131rl\u0131 kalabilir.<\/p>\n<p>\u00d6te yandan, Docker volumes, Docker taraf\u0131ndan y\u00f6netilen, daha g\u00fcvenli, ta\u015f\u0131nabilir ve performansl\u0131 bir depolama \u00e7\u00f6z\u00fcm\u00fc sunar. Veritabanlar\u0131 gibi kritik ve kal\u0131c\u0131 veriler i\u00e7in tasarlanan volumes, konteynerin ya\u015fam d\u00f6ng\u00fcs\u00fcnden ba\u011f\u0131ms\u0131z olarak verilerinizi korur, yedekleme ve geri y\u00fckleme i\u015flemlerini kolayla\u015ft\u0131r\u0131r ve orkestrasyon ara\u00e7lar\u0131yla daha iyi entegrasyon sa\u011flar. \u00dcretim ortamlar\u0131nda veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve g\u00fcvenli\u011fini sa\u011flamak i\u00e7in volumes&#8217;lar tercih edilmesi gereken standart yakla\u015f\u0131md\u0131r.<\/p>\n<p>\u00d6zetle, bind mount&#8217;lar basitlik ve geli\u015ftirme s\u00fcre\u00e7leri i\u00e7in idealdir; volumes ise \u00fcretim ortamlar\u0131nda veri kal\u0131c\u0131l\u0131\u011f\u0131, y\u00f6netilebilirlik ve \u00f6l\u00e7eklenebilirlik ihtiya\u00e7lar\u0131 i\u00e7in vazge\u00e7ilmezdir. Uygulaman\u0131z\u0131n \u00f6zel ihtiya\u00e7lar\u0131n\u0131 ve kullan\u0131m senaryosunu dikkatlice de\u011ferlendirerek do\u011fru veri depolama mekanizmas\u0131n\u0131 se\u00e7mek, Docker tabanl\u0131 uygulamalar\u0131n\u0131z\u0131n ba\u015far\u0131s\u0131 i\u00e7in hayati \u00f6neme sahiptir. Bu se\u00e7im, sadece verilerinizin nerede ya\u015fad\u0131\u011f\u0131n\u0131 belirlemekle kalmaz, ayn\u0131 zamanda uygulaman\u0131z\u0131n performans\u0131n\u0131, g\u00fcvenli\u011fini ve operasyonel verimlili\u011fini de do\u011frudan etkiler.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (FAQ)<\/h3>\n<p>*   <strong>Soru 1: Bind mount kullanmak g\u00fcvenlik riski olu\u015fturur mu?<\/strong><br \/>\n    *   Cevap: Evet, bind mount&#8217;lar belirli g\u00fcvenlik riskleri ta\u015f\u0131r. Konteynerin host dosya sistemine do\u011frudan eri\u015fimi oldu\u011fu i\u00e7in, yanl\u0131\u015f yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda veya k\u00f6t\u00fc niyetli bir konteynerde kullan\u0131ld\u0131\u011f\u0131nda host \u00fczerindeki hassas dosyalara (\u00f6rne\u011fin, <code>\/etc\/passwd<\/code> gibi) eri\u015fim yetkisi verebilir veya de\u011fi\u015fiklik yapabilir. Bu nedenle, bind mount&#8217;lar\u0131 kullan\u0131rken dikkatli olunmal\u0131 ve sadece g\u00fcvenilir kaynaklar i\u00e7in, m\u00fcmk\u00fcnse <code>ro<\/code> (read-only &#8211; sadece okunur) bayra\u011f\u0131yla kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p>*   <strong>Soru 2: Volume&#8217;lar yedeklenebilir mi?<\/strong><br \/>\n    *   Cevap: Kesinlikle. Volumes, Docker CLI komutlar\u0131 ve ge\u00e7ici yedekleme konteynerleri arac\u0131l\u0131\u011f\u0131yla kolayca yedeklenebilir ve geri y\u00fcklenebilir. Bu, veri kayb\u0131n\u0131 \u00f6nlemek ve felaket kurtarma senaryolar\u0131 i\u00e7in kritik bir avantajd\u0131r. \u00d6rne\u011fin, bir <code>tar<\/code> komutu kullanarak volume i\u00e7eri\u011fini host makinesine bir yedek dosyas\u0131 olarak kopyalayabilir ve gerekti\u011finde geri y\u00fckleyebilirsiniz.<\/p>\n<p>*   <strong>Soru 3: Docker Compose ile volumes ve bind mounts nas\u0131l tan\u0131mlan\u0131r?<\/strong><br \/>\n    *   Cevap: Docker Compose dosyalar\u0131nda (<code>docker-compose.yml<\/code>), <code>volumes<\/code> anahtar kelimesi alt\u0131nda hem bind mount&#8217;lar hem de named volumes tan\u0131mlanabilir. Bind mount&#8217;lar i\u00e7in host yolu ve konteyner yolu belirtilir (\u00f6rne\u011fin, <code>.\/my-code:\/app<\/code>), named volumes i\u00e7in ise sadece volume ad\u0131 ve konteyner yolu belirtilir (\u00f6rne\u011fin, <code>my-data:\/var\/lib\/data<\/code>). Named volumes ayr\u0131ca Compose dosyas\u0131n\u0131n en alt\u0131nda <code>volumes:<\/code> blo\u011funda ayr\u0131ca tan\u0131mlanmal\u0131d\u0131r.<\/p>\n<p>*   <strong>Soru 4: Hangi durumlarda anonim volume kullanmal\u0131y\u0131m?<\/strong><br \/>\n    *   Cevap: Anonim volumes genellikle ge\u00e7ici veya \u00f6nemsiz veriler i\u00e7in kullan\u0131l\u0131r; \u00f6rne\u011fin, derleme s\u0131ras\u0131nda olu\u015fturulan \u00f6nbellek dosyalar\u0131, ge\u00e7ici loglar veya test verileri gibi. Bu t\u00fcr verilerin kal\u0131c\u0131 olmas\u0131na veya kolayca referans al\u0131nmas\u0131na gerek yoktur. Kal\u0131c\u0131 ve \u00f6nemli veriler i\u00e7in ise her zaman adland\u0131r\u0131lm\u0131\u015f (named) volumes tercih edilmelidir, \u00e7\u00fcnk\u00fc daha kolay y\u00f6netilebilir ve ya\u015fam d\u00f6ng\u00fcleri \u00fczerinde daha fazla kontrol sa\u011flan\u0131r.<\/p>\n<p>*   <strong>Soru 5: Volume&#8217;lar host makinesinde nerede depolan\u0131r?<\/strong><br \/>\n    *   Cevap: Linux i\u015fletim sistemlerinde, Docker volumes varsay\u0131lan olarak host makinesindeki <code>\/var\/lib\/docker\/volumes\/<\/code> dizininde depolan\u0131r. Her named volume i\u00e7in bu dizin alt\u0131nda ayr\u0131 bir alt dizin olu\u015fturulur. Ancak bu konum, Docker taraf\u0131ndan y\u00f6netilir ve genellikle do\u011frudan m\u00fcdahale edilmesi veya bu dizindeki dosyalara elle eri\u015filmesi \u00f6nerilmez. Volume i\u00e7eri\u011fine eri\u015fmek veya yedeklemek i\u00e7in Docker komutlar\u0131 kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p>#Docker #DockerVolumes #BindMounts #VeriKal\u0131c\u0131l\u0131\u011f\u0131 #Konteynerizasyon #DevOps #Yaz\u0131l\u0131mGeli\u015ftirme #Teknoloji<\/p>\n","protected":false},"excerpt":{"rendered":"docker run -d -p 80:80 &#8211;name my-nginx-app -v \/path\/to\/host\/html:\/usr\/share\/nginx\/html nginx Bu komutta: * -d: Konteyneri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r. * -p 80:80: Host&#8217;un 80.","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-44809","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 Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor? - 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-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor?\" \/>\n<meta property=\"og:description\" content=\"docker run -d -p 80:80 --name my-nginx-app -v \/path\/to\/host\/html:\/usr\/share\/nginx\/html nginx Bu komutta: * -d: Konteyneri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r. * -p 80:80: Host&#039;un 80.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-20T18:08:28+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"26 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor?\",\"datePublished\":\"2026-09-20T18:08:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/\"},\"wordCount\":4722,\"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-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/\",\"name\":\"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-09-20T18:08:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor?\"}]},{\"@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 Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor? - 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-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/","og_locale":"tr_TR","og_type":"article","og_title":"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor?","og_description":"docker run -d -p 80:80 --name my-nginx-app -v \/path\/to\/host\/html:\/usr\/share\/nginx\/html nginx Bu komutta: * -d: Konteyneri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r. * -p 80:80: Host'un 80.","og_url":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-09-20T18:08:28+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"26 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor?","datePublished":"2026-09-20T18:08:28+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/"},"wordCount":4722,"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-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/","url":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/","name":"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-09-20T18:08:28+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/docker-volumes-ve-bind-mounts-verileriniz-konteynerlerde-gercekten-nerede-yasiyor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker Volumes ve Bind Mounts: Verileriniz Konteynerlerde Ger\u00e7ekten Nerede Ya\u015f\u0131yor?"}]},{"@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\/44809","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=44809"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44809\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=44809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=44809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=44809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}