{"id":31964,"date":"2025-10-16T04:31:21","date_gmt":"2025-10-16T01:31:21","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/"},"modified":"2025-10-16T04:31:21","modified_gmt":"2025-10-16T01:31:21","slug":"docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/","title":{"rendered":"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak&#8230;"},"content":{"rendered":"<style>\n    body {\n        font-family: Arial, sans-serif;\n        line-height: 1.6;\n        margin: 20px;\n        color: #333;\n    }\n    h2, h3 {\n        color: #2c3e50;\n        margin-top: 30px;\n        margin-bottom: 15px;\n    }\n    p {\n        margin-bottom: 15px;\n    }\n    ul, ol {\n        margin-bottom: 15px;\n        padding-left: 20px;\n    }\n    li {\n        margin-bottom: 5px;\n    }\n    pre {\n        background-color: #ecf0f1;\n        padding: 15px;\n        border-radius: 5px;\n        overflow-x: auto;\n        margin-bottom: 20px;\n    }\n    code {\n        font-family: \"Courier New\", monospace;\n        color: #c0392b;\n    }\n    pre code {\n        color: #27ae60;\n    }\n    table {\n        width: 100%;\n        border-collapse: collapse;\n        margin-bottom: 20px;\n    }\n    th, td {\n        border: 1px solid #ddd;\n        padding: 8px;\n        text-align: left;\n    }\n    th {\n        background-color: #f2f2f2;\n    }\n    .expert-tip {\n        background-color: #e8f5e9;\n        border-left: 5px solid #4CAF50;\n        padding: 15px;\n        margin: 20px 0;\n        border-radius: 4px;\n        font-style: italic;\n    }\n    .faq-question {\n        font-weight: bold;\n        color: #34495e;\n        margin-top: 15px;\n    }\n    .faq-answer {\n        margin-bottom: 10px;\n    }<\/p>\n<p>    \/* Mobil Uyumlu Ayarlar *\/\n    @media (max-width: 768px) {\n        body {\n            margin: 10px;\n        }\n        h2 {\n            font-size: 1.5em;\n        }\n        h3 {\n            font-size: 1.2em;\n        }\n        table, thead, tbody, th, td, tr {\n            display: block;\n        }\n        thead tr {\n            position: absolute;\n            top: -9999px;\n            left: -9999px;\n        }\n        tr {\n            border: 1px solid #ccc;\n            margin-bottom: 10px;\n        }\n        td {\n            border: none;\n            border-bottom: 1px solid #eee;\n            position: relative;\n            padding-left: 50%;\n            text-align: right;\n        }\n        td:before {\n            position: absolute;\n            top: 6px;\n            left: 6px;\n            width: 45%;\n            padding-right: 10px;\n            white-space: nowrap;\n            text-align: left;\n            font-weight: bold;\n        }\n        \/* Tablo h\u00fccrelerinin ba\u015fl\u0131klar\u0131n\u0131 burada tan\u0131mlay\u0131n *\/\n        td:nth-of-type(1):before { content: \"\u00d6zellik\"; }\n        td:nth-of-type(2):before { content: \"Bind Mounts\"; }\n        td:nth-of-type(3):before { content: \"Named Volumes\"; }\n    }\n<\/style>\n<p><span>Docker Volume Kullan\u0131m\u0131: Veri Kal\u0131c\u0131l\u0131\u011f\u0131na Sakin Yakla\u015f\u0131m<\/span><\/p>\n<p>Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu makalede, Docker Volume&#8217;lar\u0131n ne oldu\u011funu, neden kritik \u00f6neme sahip olduklar\u0131n\u0131 ve uygulamalar\u0131n\u0131zda verileri g\u00fcvenle nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m ke\u015ffedeceksiniz. Modern uygulama geli\u015ftirmenin vazge\u00e7ilmezi olan konteyner teknolojileriyle birlikte veri y\u00f6netimi pratiklerini en etkili \u015fekilde \u00f6\u011frenerek sistemlerinizin s\u00fcreklili\u011fini garanti alt\u0131na al\u0131n.<\/p>\n<p>Docker, uygulamalar\u0131 izole edilmi\u015f, ta\u015f\u0131nabilir ve hafif konteynerler i\u00e7inde paketlememizi sa\u011flayan devrim niteli\u011finde bir teknolojidir. Geli\u015ftiricilerin &#8220;bir kez yaz, her yerde \u00e7al\u0131\u015ft\u0131r&#8221; ilkesini benimsemesine olanak tan\u0131rken, \u00fcretim ortamlar\u0131nda da\u011f\u0131t\u0131m ve \u00f6l\u00e7eklendirme s\u00fcre\u00e7lerini de b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftirir. Ancak bu harika teknolojinin temel bir \u00f6zelli\u011fi, konteynerlerin varsay\u0131lan olarak ge\u00e7ici olmas\u0131d\u0131r. Bir konteyner durduruldu\u011funda, kald\u0131r\u0131ld\u0131\u011f\u0131nda veya bir hata nedeniyle \u00e7\u00f6kt\u00fc\u011f\u00fcnde, i\u00e7inde depolanan t\u00fcm veriler de onunla birlikte kaybolur. Bu durum, \u00f6zellikle veritabanlar\u0131, kullan\u0131c\u0131 y\u00fcklemeleri, log dosyalar\u0131 veya yap\u0131land\u0131rma bilgileri gibi kritik veriler i\u00e7eren uygulamalar i\u00e7in ciddi bir problem te\u015fkil eder.<\/p>\n<p>Peki, bir web uygulamas\u0131n\u0131n kullan\u0131c\u0131lar\u0131n\u0131n y\u00fckledi\u011fi t\u00fcm g\u00f6rsellerin veya bir e-ticaret sitesinin t\u00fcm \u00fcr\u00fcn veritaban\u0131n\u0131n, konteyner yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda yok oldu\u011funu hayal edin? Bu durum, herhangi bir i\u015fletme i\u00e7in kabul edilemez bir felaket olurdu. \u0130\u015fte tam bu noktada Docker Volume&#8217;lar devreye girer. Docker Volume&#8217;lar, konteynerlerin ge\u00e7ici do\u011fas\u0131n\u0131n aksine, kal\u0131c\u0131 depolama alanlar\u0131 sa\u011flayarak bu veri kayb\u0131 kabusunun \u00f6n\u00fcne ge\u00e7er. Konteynerler ne olursa olsun, \u00f6nemli veriler host makine \u00fczerinde veya ba\u015fka bir depolama servisinde g\u00fcvenle saklan\u0131r ve herhangi bir konteyner taraf\u0131ndan kullan\u0131labilir hale getirilir. Bu sayede, uygulaman\u0131z\u0131n kal\u0131c\u0131 verileri konteyner ya\u015fam d\u00f6ng\u00fcs\u00fcnden ba\u011f\u0131ms\u0131z hale gelir, b\u00f6ylece konteynerleri serbest\u00e7e ba\u015flatabilir, durdurabilir veya silebilirsiniz. \u00d6zellikle modern mikroservis mimarilerinde, her bir servisin kendi verisini y\u00f6netti\u011fi d\u00fc\u015f\u00fcn\u00fcl\u00fcrse, veri kal\u0131c\u0131l\u0131\u011f\u0131 mekanizmalar\u0131 hayati \u00f6neme sahiptir. Bu makale boyunca, Docker Volume&#8217;lar\u0131n bu kritik ihtiyac\u0131 nas\u0131l kar\u015f\u0131lad\u0131\u011f\u0131n\u0131 ve onlar\u0131 uygulamalar\u0131n\u0131zda nas\u0131l etkili bir \u015fekilde kullanaca\u011f\u0131n\u0131z\u0131 detayl\u0131ca inceleyece\u011fiz.<\/p>\n<h2 id=\"docker-volume-temelleri-verileriniz-neden-kalici-olmali\">Docker Volume Temelleri: Verileriniz Neden Kal\u0131c\u0131 Olmal\u0131?<\/h2>\n<p>Docker konteynerlerinin izole edilmi\u015f ve ta\u015f\u0131nabilir yap\u0131s\u0131, onlar\u0131 geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7leri i\u00e7in ideal k\u0131lar. Ancak bu izolasyon, ayn\u0131 zamanda konteyner i\u00e7indeki verilerin konteynerin kendisiyle birlikte ya\u015famas\u0131 anlam\u0131na gelir. Yani, bir konteyner silindi\u011finde, i\u00e7inde yaz\u0131lan her \u015fey (dosyalar, veritaban\u0131 kay\u0131tlar\u0131 vb.) da silinir. Bu durum, stateless (durumsuz) uygulamalar i\u00e7in sorun te\u015fkil etmezken, veritabanlar\u0131, kullan\u0131c\u0131 oturumlar\u0131, loglar, yap\u0131land\u0131rma dosyalar\u0131 veya kullan\u0131c\u0131 taraf\u0131ndan y\u00fcklenen medya dosyalar\u0131 gibi stateful (durumlu) uygulamalar i\u00e7in kabul edilemezdir. Bu t\u00fcr uygulamalar\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi ve g\u00fcvenilirli\u011fini s\u00fcrd\u00fcrebilmesi i\u00e7in verilerinin konteynerin ya\u015fam d\u00f6ng\u00fcs\u00fcnden ba\u011f\u0131ms\u0131z, kal\u0131c\u0131 bir \u015fekilde saklanmas\u0131 gerekir.<\/p>\n<p>Docker, bu veri kal\u0131c\u0131l\u0131\u011f\u0131 sorununu \u00e7\u00f6zmek i\u00e7in \u00fc\u00e7 temel depolama mekanizmas\u0131 sunar: named volumes, bind mounts ve tmpfs mounts. Her birinin kendine \u00f6zg\u00fc kullan\u0131m senaryolar\u0131 ve avantajlar\u0131 bulunur:<\/p>\n<ul>\n<li><strong>Named Volumes (Adland\u0131r\u0131lm\u0131\u015f Volume&#8217;lar):<\/strong> Docker taraf\u0131ndan y\u00f6netilen depolama alanlar\u0131d\u0131r. Volume&#8217;lar host makinesi \u00fczerinde Docker&#8217;\u0131n kendi veri dizininde saklan\u0131r ve Docker CLI veya API arac\u0131l\u0131\u011f\u0131yla y\u00f6netilir. Bunlar genellikle production ortamlar\u0131 i\u00e7in en iyi se\u00e7enektir \u00e7\u00fcnk\u00fc Docker bunlar\u0131 do\u011frudan y\u00f6netir, yedeklemesi kolayd\u0131r ve platformlar aras\u0131 uyumluluk sunar. \u0130smi sayesinde kolayca referans verilebilir ve birden fazla konteyner taraf\u0131ndan payla\u015f\u0131labilirler.<\/li>\n<li><strong>Bind Mounts (Ba\u011flama Noktalar\u0131):<\/strong> Host makinesindeki herhangi bir dizini do\u011frudan bir konteyner i\u00e7ine ba\u011flaman\u0131za olanak tan\u0131r. Yani, konteyner i\u00e7indeki bir klas\u00f6r asl\u0131nda host&#8217;taki ger\u00e7ek bir klas\u00f6re i\u015faret eder. Genellikle geli\u015ftirme ortamlar\u0131nda faydal\u0131d\u0131r, \u00e7\u00fcnk\u00fc kod de\u011fi\u015fikliklerini host \u00fczerinde an\u0131nda yapabilir ve konteynerde yans\u0131mas\u0131n\u0131 g\u00f6rebilirsiniz. Ancak, \u00fcretim ortamlar\u0131nda g\u00fcvenlik ve ta\u015f\u0131nabilirlik a\u00e7\u0131s\u0131ndan baz\u0131 dezavantajlar\u0131 vard\u0131r.<\/li>\n<li><strong>Tmpfs Mounts (Ge\u00e7ici Dosya Sistemi Ba\u011flamalar\u0131):<\/strong> Verileri host makinesinin belle\u011finde ge\u00e7ici olarak saklar. Konteyner durduruldu\u011funda tmpfs mount&#8217;taki veriler de kaybolur. Hassas verilerin diskte saklanmamas\u0131 veya \u00e7ok y\u00fcksek performansl\u0131 ancak ge\u00e7ici depolama gerektiren durumlar i\u00e7in idealdir.<\/li>\n<\/ul>\n<p>Bu depolama se\u00e7enekleri aras\u0131nda, \u00f6zellikle \u00fcretim ve uzun s\u00fcreli veri kal\u0131c\u0131l\u0131\u011f\u0131 gerektiren uygulamalar i\u00e7in named volumes en s\u0131k tercih edilen y\u00f6ntemdir. Named volume&#8217;lar, verilerin Docker motoru taraf\u0131ndan y\u00f6netilmesi, yedekleme ve ta\u015f\u0131ma kolayl\u0131\u011f\u0131 sa\u011flamas\u0131 ve host sisteminin dosya yap\u0131s\u0131ndan ba\u011f\u0131ms\u0131z olmas\u0131 gibi avantajlar sunar. Di\u011fer yandan, bind mounts ise genellikle geli\u015ftiricilerin kodlar\u0131n\u0131 h\u0131zl\u0131ca test etmek istedikleri yerel geli\u015ftirme ortamlar\u0131nda \u00f6ne \u00e7\u0131kar. Hangi y\u00f6ntemi se\u00e7ece\u011finiz, uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na ve kullan\u0131m senaryosuna ba\u011fl\u0131d\u0131r. Bir sonraki b\u00f6l\u00fcmde, en yayg\u0131n ve g\u00fc\u00e7l\u00fc \u00e7\u00f6z\u00fcm olan named volumes&#8217;u ad\u0131m ad\u0131m nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenece\u011fiz.<\/p>\n<h2 id=\"adim-adim-named-volume-nasil-olusturulur-ve-kullanilir\">Ad\u0131m Ad\u0131m: Named Volume Nas\u0131l Olu\u015fturulur ve Kullan\u0131l\u0131r?<\/h2>\n<p>Named volume&#8217;lar, Docker&#8217;\u0131n en yayg\u0131n ve \u00f6nerilen kal\u0131c\u0131 depolama \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Kullan\u0131m\u0131 olduk\u00e7a basittir ve size konteyner verileri \u00fczerinde tam kontrol sa\u011flar. Adland\u0131r\u0131lm\u0131\u015f bir volume olu\u015fturmak ve kullanmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 takip edebiliriz. Bu \u00f6rnekte, basit bir Nginx web sunucusunun varsay\u0131lan HTML i\u00e7eri\u011fini kal\u0131c\u0131 hale getirerek, konteyner yeniden olu\u015fturulsa bile web sitemizin i\u00e7eri\u011finin kaybolmamas\u0131n\u0131 sa\u011flayaca\u011f\u0131z.<\/p>\n<h3 id=\"adim-1-bir-named-volume-olusturma\">Ad\u0131m 1: Bir Named Volume Olu\u015fturma<\/h3>\n<p>\u00d6ncelikle, Docker&#8217;a bu volume&#8217;u bizim i\u00e7in y\u00f6netmesini s\u00f6ylememiz gerekiyor. Bunu <code>docker volume create<\/code> komutuyla yapar\u0131z:<\/p>\n<pre><code>\ndocker volume create benim_nginx_html\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, host sisteminde Docker taraf\u0131ndan y\u00f6netilen <code>benim_nginx_html<\/code> ad\u0131nda yeni bir volume olu\u015fturur. Bu volume'un fiziksel olarak nerede sakland\u0131\u011f\u0131n\u0131 merak ediyorsan\u0131z, <code>docker volume inspect benim_nginx_html<\/code> komutunu kullanabilirsiniz. \u00c7\u0131kt\u0131da yer alan <code>Mountpoint<\/code> alan\u0131, verilerin host makinesi \u00fczerindeki tam konumunu g\u00f6sterecektir.<\/p>\n<h3 id=\"adim-2-volumeu-bir-konteynere-baglama\">Ad\u0131m 2: Volume'u Bir Konteynere Ba\u011flama<\/h3>\n<p>\u015eimdi bu volume'u bir Nginx konteynerine ba\u011flayarak Nginx'in web sayfalar\u0131n\u0131 sunaca\u011f\u0131 dizini kal\u0131c\u0131 hale getirelim. Nginx, web sayfalar\u0131n\u0131 genellikle <code>\/usr\/share\/nginx\/html<\/code> dizininden sunar. Biz de volume'u bu dizine ba\u011flayaca\u011f\u0131z:<\/p>\n<pre><code>\ndocker run -d --name benim-web-sunucum -p 8080:80 -v benim_nginx_html:\/usr\/share\/nginx\/html nginx:latest\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komutta:<\/p>\n<ul>\n<li><code>-d<\/code>: Konteyneri arka planda \u00e7al\u0131\u015ft\u0131r\u0131r.<\/li>\n<li><code>--name benim-web-sunucum<\/code>: Konteynere okunabilir bir isim verir.<\/li>\n<li><code>-p 8080:80<\/code>: Host makinesinin 8080 portunu konteynerin 80 portuna e\u015fler.<\/li>\n<li><code>-v benim_nginx_html:\/usr\/share\/nginx\/html<\/code>: \u0130\u015fte sihir burada! Olu\u015fturdu\u011fumuz <code>benim_nginx_html<\/code> volume'unu Nginx konteynerinin <code>\/usr\/share\/nginx\/html<\/code> dizinine ba\u011flar. Bu, bu dizine yaz\u0131lan her \u015feyin art\u0131k volume'da kal\u0131c\u0131 olarak saklanaca\u011f\u0131 anlam\u0131na gelir.<\/li>\n<li><code>nginx:latest<\/code>: Kullan\u0131lacak Docker imaj\u0131.<\/li>\n<\/ul>\n<h3 id=\"adim-3-volume-icerigine-erisim-ve-degisiklik\">Ad\u0131m 3: Volume \u0130\u00e7eri\u011fine Eri\u015fim ve De\u011fi\u015fiklik<\/h3>\n<p>Konteynerimiz \u00e7al\u0131\u015f\u0131yor. \u015eimdi, volume i\u00e7ine kendi \u00f6zel HTML dosyam\u0131z\u0131 ekleyelim. Bunu yapman\u0131n en kolay yolu, mevcut konteyner i\u00e7ine ge\u00e7ici olarak ba\u015fka bir konteyner ba\u011flamakt\u0131r:<\/p>\n<pre><code>\ndocker run --rm -v benim_nginx_html:\/data alpine sh -c \"echo '<h1>Merhaba Docker Volumes!<\/h1>' > \/data\/index.html\"\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut:<\/p>\n<ul>\n<li><code>--rm<\/code>: Komut tamamland\u0131\u011f\u0131nda ge\u00e7ici konteyneri otomatik olarak kald\u0131r\u0131r.<\/li>\n<li><code>-v benim_nginx_html:\/data<\/code>: <code>benim_nginx_html<\/code> volume'unu Alpine konteynerinin <code>\/data<\/code> dizinine ba\u011flar.<\/li>\n<li><code>alpine sh -c \"...\"<\/code>: Alpine Linux imaj\u0131n\u0131 kullanarak bir komut \u00e7al\u0131\u015ft\u0131r\u0131r. Bu komut, <code>\/data<\/code> dizini i\u00e7ine <code>index.html<\/code> ad\u0131nda bir dosya olu\u015fturur ve i\u00e7ine \"Merhaba Docker Volumes!\" yaz\u0131s\u0131n\u0131 yazar.<\/li>\n<\/ul>\n<p>Art\u0131k taray\u0131c\u0131n\u0131zdan <code>http:\/\/localhost:8080<\/code> adresine giderek \"Merhaba Docker Volumes!\" mesaj\u0131n\u0131 g\u00f6rmelisiniz. Bu, volume'un ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h3 id=\"adim-4-kaliciligin-dogrulanmasi\">Ad\u0131m 4: Kal\u0131c\u0131l\u0131\u011f\u0131n Do\u011frulanmas\u0131<\/h3>\n<p>Verilerin kal\u0131c\u0131 oldu\u011funu do\u011frulamak i\u00e7in mevcut Nginx konteynerini kald\u0131ral\u0131m ve yeni bir tane olu\u015ftural\u0131m:<\/p>\n<pre><code>\ndocker stop benim-web-sunucum\ndocker rm benim-web-sunucum\ndocker run -d --name yeni-web-sunucum -p 8080:80 -v benim_nginx_html:\/usr\/share\/nginx\/html nginx:latest\n<\/pre>\n<p><\/code><\/p>\n<p>Yeni konteyner \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131ktan sonra tekrar <code>http:\/\/localhost:8080<\/code> adresine gidin. H\u00e2l\u00e2 \"Merhaba Docker Volumes!\" mesaj\u0131n\u0131 g\u00f6r\u00fcyorsan\u0131z, tebrikler! Verileriniz Docker Volume sayesinde ba\u015far\u0131l\u0131 bir \u015fekilde kal\u0131c\u0131 hale getirilmi\u015ftir. Konteynerler de\u011fi\u015fse bile verileriniz g\u00fcvenle saklanmaya devam ediyor.<\/p>\n<div class=\"expert-tip\">\n    Uzman \u0130pucu: Named volume'lar\u0131 kullan\u0131rken, verilerinizi host sisteminin belirli bir dizinine ba\u011flaman\u0131n aksine, Docker'\u0131n kendisinin y\u00f6netti\u011fi bir alan\u0131 kullan\u0131rs\u0131n\u0131z. Bu, volume'lar\u0131n yedeklenmesini ve farkl\u0131 host'lar aras\u0131nda ta\u015f\u0131nmas\u0131n\u0131 \u00e7ok daha kolay hale getirir, \u00f6zellikle bulut ortamlar\u0131nda b\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in kritik bir avantajd\u0131r.\n<\/div>\n<h2 id=\"gercek-dunya-senaryosu-veritabani-verilerini-docker-volume-ile-guvende-tutmak-mumkun-mu\">Ger\u00e7ek D\u00fcnya Senaryosu: Veritaban\u0131 Verilerini Docker Volume ile G\u00fcvende Tutmak M\u00fcmk\u00fcn m\u00fc?<\/h2>\n<p>Docker Volume'lar\u0131n belki de en kritik kullan\u0131m alan\u0131, veritaban\u0131 verilerinin y\u00f6netimidir. Veritabanlar\u0131, bir uygulaman\u0131n kalbi ve ruhudur; i\u00e7erdi\u011fi veriler, uygulaman\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in kesinlikle vazge\u00e7ilmezdir. Konteynerlerin ge\u00e7ici do\u011fas\u0131 g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bir veritaban\u0131n\u0131 do\u011frudan konteynerin i\u00e7 dosya sisteminde \u00e7al\u0131\u015ft\u0131rmak b\u00fcy\u00fck bir risk ta\u015f\u0131r. Konteyner durduruldu\u011funda veya \u00e7\u00f6kt\u00fc\u011f\u00fcnde verilerin kaybolmas\u0131 felaketle sonu\u00e7lanabilir. \u0130\u015fte bu y\u00fczden, veritaban\u0131 verilerini Docker Volume'lar arac\u0131l\u0131\u011f\u0131yla kal\u0131c\u0131 hale getirmek, production ortamlar\u0131nda standart bir uygulamad\u0131r.<\/p>\n<p>Bu b\u00f6l\u00fcmde, pop\u00fcler bir ili\u015fkisel veritaban\u0131 olan PostgreSQL'i Docker Compose kullanarak nas\u0131l \u00e7al\u0131\u015ft\u0131raca\u011f\u0131m\u0131z\u0131 ve verilerini g\u00fcvenli bir Docker Volume \u00fczerinde nas\u0131l saklayaca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Docker Compose, birden fazla Docker konteynerini tan\u0131mlaman\u0131za ve \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131yan bir ara\u00e7t\u0131r ve karma\u015f\u0131k uygulamalar\u0131n y\u00f6netimini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftirir.<\/p>\n<h3 id=\"docker-compose-yml-ile-postgresql-veritabani-kurulumu\"><code>docker-compose.yml<\/code> ile PostgreSQL Veritaban\u0131 Kurulumu<\/h3>\n<p>Veritaban\u0131m\u0131z\u0131 ve ona eri\u015fecek bir \u00f6rnek web uygulamas\u0131n\u0131 (iste\u011fe ba\u011fl\u0131) tan\u0131mlamak i\u00e7in bir <code>docker-compose.yml<\/code> dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>\nversion: '3.8'\n\nservices:\n  db:\n    image: postgres:13\n    restart: always\n    environment:\n      POSTGRES_DB: mydatabase\n      POSTGRES_USER: user\n      POSTGRES_PASSWORD: password\n    volumes:\n      - pgdata:\/var\/lib\/postgresql\/data\n    ports:\n      - \"5432:5432\"\n\n  app:\n    image: some-api-image:latest # \u00d6rnek bir API veya web uygulamas\u0131 imaj\u0131\n    depends_on:\n      - db\n    environment:\n      DATABASE_URL: postgres:\/\/user:password@db:5432\/mydatabase\n    ports:\n      - \"8000:8000\"\n    # E\u011fer uygulaman\u0131z\u0131n da kal\u0131c\u0131 verilere ihtiyac\u0131 varsa, buraya da bir volume ekleyebilirsiniz.\n    # volumes:\n    #   - app_data:\/app\/data\n\nvolumes:\n  pgdata:\n  app_data: # Uygulama verileri i\u00e7in iste\u011fe ba\u011fl\u0131 volume\n<\/pre>\n<p><\/code><\/p>\n<p>Bu <code>docker-compose.yml<\/code> dosyas\u0131n\u0131 inceleyelim:<\/p>\n<ul>\n<li><code>version: '3.8'<\/code>: Docker Compose dosya format\u0131n\u0131n s\u00fcr\u00fcm\u00fcn\u00fc belirtir.<\/li>\n<li><code>services:<\/code>: Uygulamam\u0131zdaki ayr\u0131 konteynerleri tan\u0131mlad\u0131\u011f\u0131m\u0131z b\u00f6l\u00fcmd\u00fcr.\n<ul>\n<li><code>db:<\/code>: PostgreSQL veritaban\u0131 servisimizi tan\u0131mlar.\n<ul>\n<li><code>image: postgres:13<\/code>: PostgreSQL 13 s\u00fcr\u00fcm\u00fcn\u00fc kullanaca\u011f\u0131m\u0131z\u0131 belirtir.<\/li>\n<li><code>restart: always<\/code>: Konteynerin bir hata durumunda veya Docker deamon'\u0131 yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak yeniden ba\u015flat\u0131lmas\u0131n\u0131 sa\u011flar. Bu, y\u00fcksek eri\u015filebilirlik i\u00e7in kritik bir ayard\u0131r.<\/li>\n<li><code>environment:<\/code>: Veritaban\u0131 i\u00e7in gerekli ortam de\u011fi\u015fkenlerini (veritaban\u0131 ad\u0131, kullan\u0131c\u0131 ad\u0131, \u015fifre) ayarlar. Bu de\u011fi\u015fkenler PostgreSQL imaj\u0131 taraf\u0131ndan otomatik olarak okunur ve veritaban\u0131 ba\u015flang\u0131c\u0131nda kullan\u0131l\u0131r.<\/li>\n<li><code>volumes: - pgdata:\/var\/lib\/postgresql\/data<\/code>: \u0130\u015fte buras\u0131 \u00e7ok \u00f6nemli! <code>pgdata<\/code> ad\u0131nda bir named volume'u, PostgreSQL'in t\u00fcm verilerini depolad\u0131\u011f\u0131 <code>\/var\/lib\/postgresql\/data<\/code> dizinine ba\u011flar. Bu sayede, <code>db<\/code> konteyneri durdurulsa, kald\u0131r\u0131lsa veya yeniden olu\u015fturulsa bile, <code>pgdata<\/code> volume'undaki t\u00fcm veritaban\u0131 dosyalar\u0131 (tablolar, indeksler, vs.) g\u00fcvende kal\u0131r.<\/li>\n<li><code>ports: - \"5432:5432\"<\/code>: Host makinesinin 5432 portunu konteynerin 5432 portuna e\u015fler, b\u00f6ylece veritaban\u0131na d\u0131\u015far\u0131dan eri\u015filebilir (\u00f6rne\u011fin bir veritaban\u0131 y\u00f6netim arac\u0131yla).<\/li>\n<\/ul>\n<\/li>\n<li><code>app:<\/code>: \u00d6rnek bir web uygulamas\u0131 veya API servisini tan\u0131mlar. Bu servis, <code>db<\/code> servisine ba\u011f\u0131ml\u0131d\u0131r (<code>depends_on: - db<\/code>).<\/li>\n<\/ul>\n<\/li>\n<li><code>volumes:<\/code>: Docker Compose dosyas\u0131nda kullan\u0131lan t\u00fcm named volume'lar\u0131 tan\u0131mlad\u0131\u011f\u0131m\u0131z b\u00f6l\u00fcmd\u00fcr. Burada <code>pgdata<\/code> ad\u0131nda bir volume tan\u0131mlanm\u0131\u015ft\u0131r. Docker Compose, bu volume'u otomatik olarak olu\u015fturur (e\u011fer yoksa).<\/li>\n<\/ul>\n<h3 id=\"uygulamanizi-baslatma\">Uygulaman\u0131z\u0131 Ba\u015flatma<\/h3>\n<p>Bu <code>docker-compose.yml<\/code> dosyas\u0131n\u0131 kaydettikten sonra, ayn\u0131 dizinde terminali a\u00e7\u0131p a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak t\u00fcm servisleri ba\u015flatabilirsiniz:<\/p>\n<pre><code>\ndocker-compose up -d\n<\/pre>\n<p><\/code><\/p>\n<p><code>-d<\/code> bayra\u011f\u0131 servisleri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r. Konteynerleriniz \u00e7al\u0131\u015fmaya ba\u015flad\u0131ktan sonra, veritaban\u0131n\u0131z <code>pgdata<\/code> volume'unda kal\u0131c\u0131 olarak saklanacakt\u0131r. Veritaban\u0131 konteynerini kald\u0131r\u0131p yeniden olu\u015ftursan\u0131z bile, daha \u00f6nce ekledi\u011finiz t\u00fcm veriler orada kalmaya devam edecektir. Bu durum, veri g\u00fcvenli\u011fi ve uygulaman\u0131z\u0131n s\u00fcreklili\u011fi a\u00e7\u0131s\u0131ndan inan\u0131lmaz derecede \u00f6nemlidir. \u00d6rne\u011fin, bir veritaban\u0131 y\u00fckseltmesi veya ba\u015fka bir nedenle yeni bir PostgreSQL konteyneri ba\u015flatman\u0131z gerekti\u011finde, mevcut <code>pgdata<\/code> volume'unu yeni konteynere ba\u011flaman\u0131z yeterli olacakt\u0131r; b\u00f6ylece eski verileriniz an\u0131nda eri\u015filebilir hale gelir.<\/p>\n<div class=\"expert-tip\">\n    Uzman \u0130pucu: Veritaban\u0131 verilerini volume'larda saklarken performans\u0131 art\u0131rmak i\u00e7in SSD tabanl\u0131 depolama kullanmak, I\/O yo\u011fun veritaban\u0131 i\u015flemleri i\u00e7in kritik \u00f6neme sahiptir. Ayr\u0131ca, production ortamlar\u0131nda volume'lar\u0131n periyodik olarak yedeklenmesi ve bu yedeklerin off-site bir konumda saklanmas\u0131 da veri kayb\u0131 senaryolar\u0131na kar\u015f\u0131 al\u0131nacak en iyi \u00f6nlemlerden biridir.\n<\/div>\n<h2 id=\"bind-mounts-ve-named-volumes-arasindaki-farklar-nelerdir-ve-ne-zaman-hangisini-tercih-etmelisiniz\">Bind Mounts ve Named Volumes Aras\u0131ndaki Farklar Nelerdir ve Ne Zaman Hangisini Tercih Etmelisiniz?<\/h2>\n<p>Docker'da kal\u0131c\u0131 veri depolama i\u00e7in iki ana mekanizma olan bind mounts ve named volumes, her ne kadar benzer bir amaca hizmet etseler de, arkalar\u0131ndaki felsefeleri ve kullan\u0131m senaryolar\u0131 a\u00e7\u0131s\u0131ndan \u00f6nemli farkl\u0131l\u0131klar ta\u015f\u0131rlar. Do\u011fru se\u00e7imi yapmak, projenizin geli\u015ftirme verimlili\u011fini, \u00fcretim ortam\u0131 g\u00fcvenilirli\u011fini ve genel bak\u0131m kolayl\u0131\u011f\u0131n\u0131 do\u011frudan etkileyebilir.<\/p>\n<p><strong>Bind Mounts (Ba\u011flama Noktalar\u0131):<\/strong><\/p>\n<p>Bind mounts, host makinesindeki belirli bir dizini do\u011frudan bir konteynerin i\u00e7ine ba\u011flar. Bu, host sisteminin dosya yap\u0131s\u0131na do\u011frudan eri\u015fim sa\u011flar. Host dizininin yolu kesin olarak belirtilir. Temel avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>H\u0131zl\u0131 Geli\u015ftirme Ortam\u0131:<\/strong> Geli\u015ftiricilerin kodlar\u0131n\u0131 host \u00fczerinde d\u00fczenleyip, bu de\u011fi\u015fikliklerin an\u0131nda konteyner i\u00e7inde yans\u0131mas\u0131n\u0131 g\u00f6rmelerini sa\u011flar. Bu, test ve hata ay\u0131klama s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r.<\/li>\n<li><strong>Host Dosya Sistemine Tam Kontrol:<\/strong> Host makinesindeki dosyalar \u00fczerinde tam kontrole sahip olursunuz, bu da belirli yap\u0131land\u0131rma dosyalar\u0131n\u0131 veya loglar\u0131 kolayca y\u00f6netmenize olanak tan\u0131r.<\/li>\n<li><strong>Basit Yap\u0131land\u0131rma:<\/strong> Genellikle daha az karma\u015f\u0131k bir yap\u0131land\u0131rma gerektirir, \u00e7\u00fcnk\u00fc sadece host ve konteynerdeki yollar\u0131 belirtmeniz yeterlidir.<\/li>\n<\/ul>\n<p>Dezavantajlar\u0131 ise:<\/p>\n<ul>\n<li><strong>Ta\u015f\u0131nabilirlik Eksikli\u011fi:<\/strong> Host'un dosya sistemine ba\u011f\u0131ml\u0131d\u0131r. Bir konteyneri ba\u015fka bir host'a ta\u015f\u0131mak istedi\u011finizde, hedef host'un ayn\u0131 dosya yap\u0131s\u0131na sahip olmas\u0131 veya bind mount'lar\u0131n manuel olarak yeniden yap\u0131land\u0131r\u0131lmas\u0131 gerekir.<\/li>\n<li><strong>G\u00fcvenlik Riski:<\/strong> Konteynerin host dosya sisteminin geni\u015f bir b\u00f6l\u00fcm\u00fcne eri\u015fmesine izin verebilir, bu da g\u00fcvenlik a\u00e7\u0131klar\u0131na yol a\u00e7abilir.<\/li>\n<li><strong>Y\u00f6netim Karma\u015f\u0131kl\u0131\u011f\u0131:<\/strong> Docker taraf\u0131ndan y\u00f6netilmedi\u011fi i\u00e7in yedekleme veya temizleme gibi i\u015flemler i\u00e7in daha fazla manuel \u00e7aba gerektirir.<\/li>\n<\/ul>\n<p><strong>Named Volumes (Adland\u0131r\u0131lm\u0131\u015f Volume'lar):<\/strong><\/p>\n<p>Named volumes, Docker taraf\u0131ndan y\u00f6netilen depolama alanlar\u0131d\u0131r. Docker, bu volume'lar\u0131 host makinesi \u00fczerinde kendi belirledi\u011fi bir konumda (genellikle <code>\/var\/lib\/docker\/volumes\/<\/code> alt\u0131nda) saklar. Volume'lar isimleri arac\u0131l\u0131\u011f\u0131yla referans verilir ve Docker bunlar\u0131 soyutlar. Ba\u015fl\u0131ca avantajlar\u0131:<\/p>\n<ul>\n<li><strong>Y\u00fcksek Ta\u015f\u0131nabilirlik:<\/strong> Host dosya sisteminden ba\u011f\u0131ms\u0131z olduklar\u0131 i\u00e7in, konteynerlerle birlikte farkl\u0131 host'lar aras\u0131nda kolayca ta\u015f\u0131nabilirler. Docker, volume'un nerede sakland\u0131\u011f\u0131n\u0131 bilir ve gerekti\u011finde otomatik olarak y\u00f6netir.<\/li>\n<li><strong>Veri Kal\u0131c\u0131l\u0131\u011f\u0131 ve G\u00fcvenilirli\u011fi:<\/strong> \u00d6zellikle veritabanlar\u0131 gibi kritik veriler i\u00e7in tasarlanm\u0131\u015ft\u0131r. Konteynerler silinse bile veriler g\u00fcvende kal\u0131r.<\/li>\n<li><strong>Docker Taraf\u0131ndan Y\u00f6netim:<\/strong> Yedekleme, temizleme, inceleme gibi i\u015flemler Docker CLI veya API arac\u0131l\u0131\u011f\u0131yla kolayca yap\u0131labilir.<\/li>\n<li><strong>Payla\u015f\u0131m Kolayl\u0131\u011f\u0131:<\/strong> Birden fazla konteyner ayn\u0131 named volume'u kullanabilir, bu da mikroservis mimarilerinde veri payla\u015f\u0131m\u0131n\u0131 basitle\u015ftirir.<\/li>\n<li><strong>Performans:<\/strong> Baz\u0131 durumlarda bind mounts'tan daha iyi I\/O performans\u0131 sunabilirler, \u00f6zellikle a\u011f depolama s\u00fcr\u00fcc\u00fcleri ile entegre edildi\u011finde.<\/li>\n<\/ul>\n<p>Dezavantajlar\u0131:<\/p>\n<ul>\n<li><strong>Daha Az Do\u011frudan Kontrol:<\/strong> Volume'un fiziksel olarak host \u00fczerinde nerede sakland\u0131\u011f\u0131 hakk\u0131nda do\u011frudan kontrol\u00fcn\u00fcz yoktur (ancak <code>docker volume inspect<\/code> ile g\u00f6rebilirsiniz).<\/li>\n<li><strong>Geli\u015ftirme Ortam\u0131 \u0130\u00e7in Daha Az Esnek:<\/strong> Kodunuzda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin konteynere yans\u0131mas\u0131 bind mounts kadar h\u0131zl\u0131 olmayabilir.<\/li>\n<\/ul>\n<h3 id=\"ne-zaman-hangisini-tercih-etmelisiniz\">Ne Zaman Hangisini Tercih Etmelisiniz?<\/h3>\n<p>Se\u00e7im, kullan\u0131m senaryonuza ba\u011fl\u0131d\u0131r:<\/p>\n<ul>\n<li><strong>Bind Mounts:<\/strong> Genellikle <strong>geli\u015ftirme ortamlar\u0131nda<\/strong>, \u00f6zellikle de yerel kod de\u011fi\u015fikliklerinin an\u0131nda test edilmesi gereken durumlarda tercih edilir. Log dosyalar\u0131n\u0131 host'ta belirli bir dizine kaydetmek veya host'taki bir yap\u0131land\u0131rma dosyas\u0131n\u0131 konteynere vermek i\u00e7in de kullan\u0131labilir.<\/li>\n<li><strong>Named Volumes:<\/strong> <strong>\u00dcretim ortamlar\u0131<\/strong>, veritabanlar\u0131, mesaj kuyruklar\u0131, \u00f6nbellekler veya kullan\u0131c\u0131 y\u00fcklemeleri gibi <strong>kal\u0131c\u0131 ve kritik veri depolamas\u0131<\/strong> gerektiren her t\u00fcrl\u00fc uygulama i\u00e7in varsay\u0131lan ve \u00f6nerilen \u00e7\u00f6z\u00fcmd\u00fcr. Daha y\u00fcksek ta\u015f\u0131nabilirlik, y\u00f6netilebilirlik ve g\u00fcvenilirlik sunar.<\/li>\n<\/ul>\n<table>\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th>Bind Mounts<\/th>\n<th>Named Volumes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Y\u00f6netim<\/td>\n<td>Host taraf\u0131ndan<\/td>\n<td>Docker taraf\u0131ndan<\/td>\n<\/tr>\n<tr>\n<td>Konum<\/td>\n<td>Host'taki belirli bir yol<\/td>\n<td>Docker veri dizini i\u00e7inde<\/td>\n<\/tr>\n<tr>\n<td>Ta\u015f\u0131nabilirlik<\/td>\n<td>D\u00fc\u015f\u00fck (Host'a ba\u011f\u0131ml\u0131)<\/td>\n<td>Y\u00fcksek (Docker taraf\u0131ndan y\u00f6netilir)<\/td>\n<\/tr>\n<tr>\n<td>G\u00fcvenlik<\/td>\n<td>Potansiyel g\u00fcvenlik riskleri<\/td>\n<td>Daha g\u00fcvenli (Soyutlama sa\u011flar)<\/td>\n<\/tr>\n<tr>\n<td>Kullan\u0131m Alan\u0131<\/td>\n<td>Geli\u015ftirme, yap\u0131land\u0131rma<\/td>\n<td>\u00dcretim, veritabanlar\u0131, kal\u0131c\u0131 veriler<\/td>\n<\/tr>\n<tr>\n<td>Yedekleme<\/td>\n<td>Manuel veya host ara\u00e7lar\u0131 ile<\/td>\n<td>Docker komutlar\u0131 ile kolay<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Sonu\u00e7 olarak, genel bir kural olarak, kal\u0131c\u0131 ve \u00f6nemli veriler i\u00e7in named volumes kullan\u0131n. Geli\u015ftirme s\u0131ras\u0131nda veya host dosya sistemine do\u011frudan eri\u015fimin kesinlikle gerekli oldu\u011fu \u00f6zel durumlar i\u00e7in bind mounts tercih edebilirsiniz. Ancak her zaman g\u00fcvenlik ve ta\u015f\u0131nabilirlik risklerini g\u00f6z \u00f6n\u00fcnde bulundurun.<\/p>\n<h2 id=\"docker-volume-yonetimi-yedekleme-tasima-ve-temizleme-ipuclari\">Docker Volume Y\u00f6netimi: Yedekleme, Ta\u015f\u0131ma ve Temizleme \u0130pu\u00e7lar\u0131<\/h2>\n<p>Docker Volume'lar\u0131n temel amac\u0131 veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamakt\u0131r, ancak bu verilerin y\u00f6netimi de bir o kadar \u00f6nemlidir. Do\u011fru yedekleme stratejileri, veri kayb\u0131n\u0131 \u00f6nlerken; ta\u015f\u0131ma teknikleri, altyap\u0131 de\u011fi\u015fikliklerinde esneklik sunar. Ayr\u0131ca, kullan\u0131lmayan volume'lar\u0131 temizlemek, disk alan\u0131n\u0131 optimize eder ve sistemin d\u00fczenli kalmas\u0131n\u0131 sa\u011flar. Bu b\u00f6l\u00fcmde, Docker Volume'lar\u0131 etkin bir \u015fekilde nas\u0131l y\u00f6netece\u011finizi ele alaca\u011f\u0131z.<\/p>\n<h3 id=\"volume-lari-yedekleme-stratejileri\">Volume'lar\u0131 Yedekleme Stratejileri<\/h3>\n<p>Verilerinizi g\u00fcvende tutman\u0131n en \u00f6nemli yollar\u0131ndan biri d\u00fczenli yedeklemedir. Docker Volume'lar\u0131 yedeklemek i\u00e7in birka\u00e7 farkl\u0131 yakla\u015f\u0131m mevcuttur:<\/p>\n<ol>\n<li><strong>Ge\u00e7ici Konteyner Kullanarak Yedekleme:<\/strong>\n<p>Bu y\u00f6ntem, bir tar ar\u015fivi olu\u015fturarak volume i\u00e7eri\u011fini host makinesine kopyalamay\u0131 i\u00e7erir. Basit ve etkili bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<pre><code>\ndocker run --rm -v [kaynak_volume_ad\u0131]:\/volume_data -v [yedeklenecek_host_yolu]:\/backup_dest busybox tar cvf \/backup_dest\/backup.tar \/volume_data\n        <\/pre>\n<p><\/code><\/p>\n<p>Burada <code>[kaynak_volume_ad\u0131]<\/code> yedeklemek istedi\u011finiz volume'un ad\u0131 (\u00f6rne\u011fin <code>pgdata<\/code>), <code>[yedeklenecek_host_yolu]<\/code> ise yede\u011fin host \u00fczerinde kaydedilece\u011fi dizindir (\u00f6rne\u011fin <code>\/home\/user\/backups<\/code>). <code>busybox<\/code> hafif bir imaj oldu\u011fu i\u00e7in yedekleme i\u015flemi i\u00e7in idealdir.<\/p>\n<p>Geri y\u00fckleme i\u00e7in ise benzer bir komut kullanabilirsiniz:<\/p>\n<pre><code>\ndocker run --rm -v [hedef_volume_ad\u0131]:\/volume_data -v [yedek_host_yolu]:\/backup_source busybox tar xvf \/backup_source\/backup.tar -C \/volume_data\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Bulut Depolama Entegrasyonu:<\/strong>\n<p>Daha geli\u015fmi\u015f senaryolarda, Docker Volume eklentilerini (plugins) kullanarak volume'lar\u0131 do\u011frudan AWS S3, Azure Blob Storage veya Google Cloud Storage gibi bulut depolama hizmetlerine yedekleyebilirsiniz. Bu, otomatik yedekleme ve felaket kurtarma i\u00e7in g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"volume-lari-baska-bir-hosta-tasima\">Volume'lar\u0131 Ba\u015fka Bir Host'a Ta\u015f\u0131ma<\/h3>\n<p>Uygulamalar\u0131n\u0131z\u0131 farkl\u0131 sunuculara ta\u015f\u0131rken volume'lar\u0131 da beraberinde g\u00f6t\u00fcrmek isteyebilirsiniz. Bunun i\u00e7in izlenecek ad\u0131mlar yedekleme i\u015flemine benzer:<\/p>\n<ol>\n<li><strong>Kaynak Host'tan Yedekleme:<\/strong> Yukar\u0131daki yedekleme komutunu kullanarak volume i\u00e7eri\u011fini bir tar dosyas\u0131 olarak host'a kaydedin.<\/li>\n<li><strong>Yedek Dosyas\u0131n\u0131 Hedef Host'a Kopyalama:<\/strong> <code>scp<\/code> veya benzeri bir ara\u00e7 kullanarak <code>backup.tar<\/code> dosyas\u0131n\u0131 hedef host'a aktar\u0131n.<\/li>\n<li><strong>Hedef Host'ta Volume Olu\u015fturma ve Geri Y\u00fckleme:<\/strong> Hedef host'ta ayn\u0131 isimde yeni bir volume olu\u015fturun ve yedekledi\u011finiz tar dosyas\u0131n\u0131 bu volume'a geri y\u00fckleyin.<\/li>\n<\/ol>\n<h3 id=\"kullanilmayan-volume-lari-temizleme\">Kullan\u0131lmayan Volume'lar\u0131 Temizleme<\/h3>\n<p>Zamanla, kald\u0131r\u0131lan konteynerlere ait olan ancak silinmeyen volume'lar birikebilir ve disk alan\u0131n\u0131z\u0131 i\u015fgal edebilir. Bu volume'lar\u0131 temizlemek i\u00e7in <code>docker volume prune<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code>\ndocker volume prune\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, hi\u00e7bir konteynere ba\u011fl\u0131 olmayan t\u00fcm named volume'lar\u0131 kald\u0131r\u0131r. Bu, disk alan\u0131n\u0131z\u0131 geri kazanmak i\u00e7in d\u00fczenli olarak yap\u0131lmas\u0131 gereken faydal\u0131 bir bak\u0131m i\u015flemidir. Dikkatli olun, bu komut geri al\u0131namaz bir i\u015flemdir.<\/p>\n<h3 id=\"volume-detaylarini-inceleme\">Volume Detaylar\u0131n\u0131 \u0130nceleme<\/h3>\n<p>Bir volume hakk\u0131nda detayl\u0131 bilgi almak i\u00e7in <code>docker volume inspect<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code>\ndocker volume inspect benim_nginx_html\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, volume'un ad\u0131n\u0131, s\u00fcr\u00fcc\u00fcs\u00fcn\u00fc, mount noktas\u0131n\u0131 (host \u00fczerindeki fiziksel konumu) ve olu\u015fturulma zaman\u0131 gibi bilgileri i\u00e7eren bir JSON \u00e7\u0131kt\u0131s\u0131 verir. Bu, sorun giderme ve volume'lar\u0131n\u0131z\u0131n durumunu anlamak i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h2 id=\"docker-volume-yonetimi-icin-web-arayuzleri-ve-mobil-uyumlu-cozumler\">Docker Volume Y\u00f6netimi \u0130\u00e7in Web Aray\u00fczleri ve Mobil Uyumlu \u00c7\u00f6z\u00fcmler<\/h2>\n<p>Docker konteynerleri ve volume'lar\u0131 komut sat\u0131r\u0131ndan y\u00f6netmek olduk\u00e7a g\u00fc\u00e7l\u00fc olsa da, \u00f6zellikle b\u00fcy\u00fck ve karma\u015f\u0131k da\u011f\u0131t\u0131mlar i\u00e7in veya CLI kullanmaya al\u0131\u015fk\u0131n olmayan ekipler i\u00e7in bir web aray\u00fcz\u00fc \u00e7ok daha kullan\u0131\u015fl\u0131 olabilir. Portainer gibi ara\u00e7lar, Docker ortam\u0131n\u0131z\u0131 g\u00f6rsel olarak y\u00f6netmenize olanak tan\u0131r. Bu b\u00f6l\u00fcmde, web aray\u00fczleri arac\u0131l\u0131\u011f\u0131yla Docker Volume y\u00f6netimini ve bu t\u00fcr aray\u00fczlerin mobil uyumlulu\u011funun neden \u00f6nemli oldu\u011funu ele alaca\u011f\u0131z.<\/p>\n<h3 id=\"portainer-ile-volume-yonetimi\">Portainer ile Volume Y\u00f6netimi<\/h3>\n<p>Portainer, Docker ortam\u0131n\u0131z\u0131 (tek bir Docker Engine veya bir Swarm k\u00fcmesi olsun) y\u00f6netmek i\u00e7in kullan\u0131m\u0131 kolay bir UI (kullan\u0131c\u0131 aray\u00fcz\u00fc) sa\u011flayan pop\u00fcler bir ara\u00e7t\u0131r. Portainer'\u0131 bir Docker konteyneri olarak h\u0131zl\u0131ca da\u011f\u0131tabilirsiniz:<\/p>\n<pre><code>\ndocker volume create portainer_data\ndocker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart always -v \/var\/run\/docker.sock:\/var\/run\/docker.sock -v portainer_data:\/data portainer\/portainer-ce:latest\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131ktan sonra, taray\u0131c\u0131n\u0131zdan <code>https:\/\/localhost:9443<\/code> adresine giderek Portainer aray\u00fcz\u00fcne eri\u015febilirsiniz. Portainer, size \u015funlar\u0131 yapma olana\u011f\u0131 sunar:<\/p>\n<ul>\n<li><strong>Volume Listeleme ve \u0130nceleme:<\/strong> T\u00fcm mevcut volume'lar\u0131 g\u00f6rebilir, boyutlar\u0131, ba\u011fl\u0131 olduklar\u0131 konteynerler ve di\u011fer detaylar hakk\u0131nda bilgi alabilirsiniz.<\/li>\n<li><strong>Volume Olu\u015fturma ve Silme:<\/strong> Yeni named volume'lar olu\u015fturabilir veya art\u0131k ihtiyac\u0131n\u0131z olmayanlar\u0131 silebilirsiniz.<\/li>\n<li><strong>Konteynerlere Volume Ba\u011flama:<\/strong> Konteyner olu\u015ftururken veya var olan bir konteyneri d\u00fczenlerken, volume'lar\u0131 kolayca ba\u011flayabilirsiniz.<\/li>\n<li><strong>Yedekleme ve Geri Y\u00fckleme (Eklentilerle):<\/strong> Baz\u0131 Portainer eklentileri veya entegrasyonlar\u0131, volume yedeklemesini kolayla\u015ft\u0131rabilir.<\/li>\n<\/ul>\n<p>Portainer gibi ara\u00e7lar, Docker Volume y\u00f6netimini g\u00f6rselle\u015ftirerek hata yapma olas\u0131l\u0131\u011f\u0131n\u0131 azalt\u0131r ve y\u00f6netim s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r. Bu, \u00f6zellikle b\u00fcy\u00fck ekiplerde veya Docker'a yeni ba\u015flayanlar i\u00e7in b\u00fcy\u00fck bir avantajd\u0131r.<\/p>\n<h3 id=\"mobil-uyumlu-arayuz-tasariminin-onemi\">Mobil Uyumlu Aray\u00fcz Tasar\u0131m\u0131n\u0131n \u00d6nemi<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz d\u00fcnyas\u0131nda, sistem y\u00f6neticileri ve geli\u015ftiriciler genellikle hareket halindedir ve sunucular\u0131 veya uygulamalar\u0131 uzaktan, hatta mobil cihazlar\u0131ndan y\u00f6netme ihtiyac\u0131 duyarlar. Bu nedenle, Portainer gibi Docker y\u00f6netim aray\u00fczlerinin mobil uyumlu olmas\u0131 kritik \u00f6neme sahiptir. Mobil uyumlu bir aray\u00fcz, farkl\u0131 ekran boyutlar\u0131na ve \u00e7\u00f6z\u00fcn\u00fcrl\u00fcklerine otomatik olarak uyum sa\u011flayarak, bir ak\u0131ll\u0131 telefondan veya tabletten bile kolayca gezinilebilir ve kullan\u0131labilir olmal\u0131d\u0131r.<\/p>\n<p>Mobil uyumluluk, genellikle Responsive Web Design (Duyarl\u0131 Web Tasar\u0131m\u0131) prensipleri kullan\u0131larak sa\u011flan\u0131r. Bu prensipler, CSS medya sorgular\u0131 (Media Queries) arac\u0131l\u0131\u011f\u0131yla farkl\u0131 cihaz boyutlar\u0131 i\u00e7in farkl\u0131 stil kurallar\u0131n\u0131n uygulanmas\u0131n\u0131 i\u00e7erir. \u00d6rne\u011fin, bir tabloda \u00e7ok fazla s\u00fctun varsa, mobil g\u00f6r\u00fcn\u00fcmde bu s\u00fctunlar\u0131n gizlenmesi veya dikey olarak istiflenmesi gerekebilir.<\/p>\n<pre><code>\n\/* \u00d6rnek bir mobil uyumlu CSS medya sorgusu *\/\n@media (max-width: 768px) {\n    \/* Genel body ayarlar\u0131 *\/\n    body {\n        font-size: 14px; \/* Yaz\u0131 boyutunu k\u00fc\u00e7\u00fclt *\/\n        padding: 10px;   \/* Kenar bo\u015fluklar\u0131n\u0131 azalt *\/\n    }\n\n    \/* Tablolar\u0131n mobil cihazlarda daha iyi g\u00f6r\u00fcnmesini sa\u011flama *\/\n    table, thead, tbody, th, td, tr {\n        display: block; \/* Tablo elemanlar\u0131n\u0131 blok olarak g\u00f6ster *\/\n    }\n    thead tr {\n        position: absolute;\n        top: -9999px; \/* Ba\u015fl\u0131klar\u0131 gizle *\/\n        left: -9999px;\n    }\n    tr {\n        border: 1px solid #ccc;\n        margin-bottom: 10px;\n    }\n    td {\n        border: none;\n        border-bottom: 1px solid #eee;\n        position: relative;\n        padding-left: 50%; \/* \u0130\u00e7erik i\u00e7in bo\u015fluk b\u0131rak *\/\n        text-align: right; \/* \u0130\u00e7eri\u011fi sa\u011fa hizala *\/\n    }\n    td:before {\n        position: absolute;\n        top: 6px;\n        left: 6px;\n        width: 45%;\n        padding-right: 10px;\n        white-space: nowrap;\n        text-align: left;\n        font-weight: bold;\n    }\n    \/* \u0130lk s\u00fctun (\u00f6rn. \u00d6zellik) i\u00e7in etiket *\/\n    td:nth-of-type(1):before { content: \"\u00d6zellik\"; }\n    \/* \u0130kinci s\u00fctun (\u00f6rn. Bind Mounts) i\u00e7in etiket *\/\n    td:nth-of-type(2):before { content: \"Bind Mounts\"; }\n    \/* \u00dc\u00e7\u00fcnc\u00fc s\u00fctun (\u00f6rn. Named Volumes) i\u00e7in etiket *\/\n    td:nth-of-type(3):before { content: \"Named Volumes\"; }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki CSS \u00f6rne\u011fi, bir HTML tablosunun mobil cihazlarda nas\u0131l daha okunabilir hale getirilebilece\u011fini g\u00f6sterir. Medya sorgular\u0131 sayesinde, taray\u0131c\u0131 geni\u015fli\u011fi 768 pikselin alt\u0131na d\u00fc\u015ft\u00fc\u011f\u00fcnde, tablo h\u00fccreleri blok olarak g\u00f6r\u00fcnt\u00fclenir ve her bir h\u00fccre, kendi ba\u015fl\u0131\u011f\u0131n\u0131 i\u00e7eren bir \"s\u00f6zde\" \u00f6\u011fe (<code>:before<\/code>) ile etiketlenir. Bu, kullan\u0131c\u0131lar\u0131n dar ekranlarda bile verileri kolayca anlamas\u0131na yard\u0131mc\u0131 olur. B\u00f6ylece, Docker ortam\u0131n\u0131z\u0131 y\u00f6netmek i\u00e7in kulland\u0131\u011f\u0131n\u0131z web aray\u00fczleri, masa\u00fcst\u00fcnden mobil cihaza kadar her yerden tutarl\u0131 ve kullan\u0131\u015fl\u0131 bir deneyim sunabilir.<\/p>\n<h2 id=\"sonuc-veri-kaliciligi-docker-volumelarla-artik-kabus-degil\">Sonu\u00e7: Veri Kal\u0131c\u0131l\u0131\u011f\u0131 Docker Volume'larla Art\u0131k Kabus De\u011fil<\/h2>\n<p>Bu makale boyunca, Docker konteynerlerinin do\u011fas\u0131nda bulunan ge\u00e7icilik sorununu Docker Volume'lar arac\u0131l\u0131\u011f\u0131yla nas\u0131l a\u015fabilece\u011fimizi detayl\u0131 bir \u015fekilde inceledik. Konteyner tabanl\u0131 uygulamalar\u0131n h\u0131z, ta\u015f\u0131nabilirlik ve izolasyon gibi avantajlar\u0131ndan tam olarak faydalan\u0131rken, verilerimizin kal\u0131c\u0131l\u0131\u011f\u0131n\u0131 ve g\u00fcvenli\u011fini sa\u011flamak, her modern uygulama geli\u015ftirme ve da\u011f\u0131t\u0131m stratejisinin temelini olu\u015fturur. Docker Volume'lar, bu kritik ihtiyac\u0131 kar\u015f\u0131layarak, veritabanlar\u0131ndan log dosyalar\u0131na, kullan\u0131c\u0131 y\u00fcklemelerinden yap\u0131land\u0131rma verilerine kadar her t\u00fcrl\u00fc bilgiyi konteyner ya\u015fam d\u00f6ng\u00fcs\u00fcnden ba\u011f\u0131ms\u0131z hale getirmenin en etkili yolunu sunar.<\/p>\n<p>Named volumes'lar\u0131n esnekli\u011fi, y\u00f6netilebilirli\u011fi ve ta\u015f\u0131nabilirli\u011fi, onlar\u0131 \u00fcretim ortamlar\u0131 i\u00e7in ideal bir se\u00e7enek haline getirirken; bind mounts, geli\u015ftirme s\u00fcre\u00e7lerinde h\u0131zl\u0131 geri bildirim d\u00f6ng\u00fcleri sa\u011flamas\u0131yla \u00f6ne \u00e7\u0131kar. Her iki yakla\u015f\u0131m\u0131n da kendine \u00f6zg\u00fc avantajlar\u0131 ve dezavantajlar\u0131 oldu\u011funu ve do\u011fru se\u00e7imin, projenizin \u00f6zel ihtiya\u00e7lar\u0131na ve kullan\u0131m senaryosuna ba\u011fl\u0131 oldu\u011funu g\u00f6rd\u00fck. Ayr\u0131ca, volume'lar\u0131n etkin bir \u015fekilde yedeklenmesi, ta\u015f\u0131nmas\u0131 ve temizlenmesi gibi y\u00f6netim pratiklerinin, sistemlerinizin istikrarl\u0131 ve optimize edilmi\u015f kalmas\u0131 i\u00e7in ne kadar \u00f6nemli oldu\u011funu da ele ald\u0131k. Portainer gibi web aray\u00fczleri ve mobil uyumlu tasar\u0131m yakla\u015f\u0131mlar\u0131 ise bu y\u00f6netim s\u00fcre\u00e7lerini daha eri\u015filebilir ve kullan\u0131c\u0131 dostu hale getiriyor.<\/p>\n<p>Art\u0131k \"Keep Calm and Use Docker Volumes\" felsefesinin alt\u0131nda yatan mant\u0131\u011f\u0131 ve pratik uygulamalar\u0131n\u0131 anlad\u0131\u011f\u0131n\u0131za g\u00f6re, Docker tabanl\u0131 uygulamalar\u0131n\u0131z\u0131n veri kal\u0131c\u0131l\u0131\u011f\u0131 endi\u015fesinden uzak, daha sa\u011flam ve g\u00fcvenilir bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayabilirsiniz. Verilerinizin g\u00fcvende oldu\u011funu bilmek, size yenilik yapmaya ve daha iyi uygulamalar geli\u015ftirmeye odaklanma \u00f6zg\u00fcrl\u00fc\u011f\u00fc verecektir. Unutmay\u0131n, iyi y\u00f6netilmi\u015f veriler, ba\u015far\u0131l\u0131 bir uygulaman\u0131n temelidir.<\/p>\n<h3 id=\"sikca-sorulan-sorular\">S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<div class=\"faq-question\">1. Docker Volume'lar nereye kaydedilir?<\/div>\n<div class=\"faq-answer\">Named volume'lar, varsay\u0131lan olarak host makinesinde Docker'\u0131n kendi y\u00f6netimli veri dizininde (genellikle Linux'ta <code>\/var\/lib\/docker\/volumes\/<\/code> alt\u0131nda) saklan\u0131r. Bind mounts ise host \u00fczerindeki belirtilen herhangi bir yola ba\u011flan\u0131r.<\/div>\n<div class=\"faq-question\">2. Bir Docker Volume'u birden fazla konteyner kullanabilir mi?<\/div>\n<div class=\"faq-answer\">Evet, bir named volume birden fazla konteyner taraf\u0131ndan ayn\u0131 anda kullan\u0131labilir ve verileri payla\u015fabilir. Bu, \u00f6zellikle mikroservis mimarilerinde veya ayn\u0131 verilere eri\u015fmesi gereken ba\u011f\u0131ms\u0131z servisler i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/div>\n<div class=\"faq-question\">3. Docker Volume'lar\u0131 silmek verileri de siler mi?<\/div>\n<div class=\"faq-answer\">Evet, <code>docker volume rm [volume_ad\u0131]<\/code> komutu \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, o volume ile ili\u015fkili t\u00fcm veriler host makinesinden kal\u0131c\u0131 olarak silinir. Bu nedenle, \u00f6nemli veriler i\u00e7eren volume'lar\u0131 silmeden \u00f6nce mutlaka yedekleme yap\u0131lmas\u0131 \u00f6nerilir.<\/div>\n<div class=\"faq-question\">4. Named volume'lar ve bind mounts aras\u0131nda performans fark\u0131 var m\u0131?<\/div>\n<div class=\"faq-answer\">Genel olarak, named volume'lar \u00e7o\u011fu kullan\u0131m senaryosunda iyi performans sunar ve baz\u0131 durumlarda bind mounts'tan daha iyi I\/O performans\u0131 g\u00f6sterebilir (\u00f6zellikle Docker Desktop ve farkl\u0131 i\u015fletim sistemleri aras\u0131nda dosya payla\u015f\u0131m\u0131nda). Bind mounts, host dosya sistemine do\u011frudan eri\u015fim sa\u011flad\u0131\u011f\u0131 i\u00e7in baz\u0131 Linux tabanl\u0131 host'larda \u00e7ok y\u00fcksek performans g\u00f6sterebilirken, sanalla\u015ft\u0131r\u0131lm\u0131\u015f ortamlar veya farkl\u0131 i\u015fletim sistemleri aras\u0131nda bazen overhead'e neden olabilir.<\/div>\n<div class=\"faq-question\">5. Docker Volume'lar i\u00e7in en iyi yedekleme y\u00f6ntemi hangisidir?<\/div>\n<div class=\"faq-answer\">En iyi yedekleme y\u00f6ntemi, uygulaman\u0131z\u0131n kritiklik d\u00fczeyine ve b\u00fct\u00e7enize ba\u011fl\u0131d\u0131r. Basit senaryolar i\u00e7in ge\u00e7ici bir konteyner kullanarak tar ar\u015fivi olu\u015fturmak yeterli olabilir. Daha kritik production ortamlar\u0131 i\u00e7in, bulut depolama hizmetleriyle entegre \u00e7al\u0131\u015fan Docker Volume eklentileri veya \u00f6zel yedekleme \u00e7\u00f6z\u00fcmleri kullanmak daha g\u00fcvenli ve otomatik bir yakla\u015f\u0131m sunar.<\/div>\n","protected":false},"excerpt":{"rendered":"Docker Volume Kullan\u0131m\u0131: Veri Kal\u0131c\u0131l\u0131\u011f\u0131na Sakin Yakla\u015f\u0131m Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu makalede,&hellip;","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-31964","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 konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak...<\/title>\n<meta name=\"description\" content=\"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu makalede, Docker Volume&#039;lar\u0131n ne oldu\u011funu, neden kritik \u00f6neme sahip olduklar\u0131n\u0131 ve uygulamalar\u0131n\u0131zda verileri g\u00fcvenle nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m ke\u015ffedeceksiniz. Modern uygulama geli\u015ftirmenin vazge\u00e7ilmezi olan konteyner teknolojileriyle birlikte veri y\u00f6netimi pratiklerini en etkili \u015fekilde \u00f6\u011frenerek sistemlerinizin s\u00fcreklili\u011fini garanti alt\u0131na al\u0131n.\" \/>\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-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak...\" \/>\n<meta property=\"og:description\" content=\"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu makalede, Docker Volume&#039;lar\u0131n ne oldu\u011funu, neden kritik \u00f6neme sahip olduklar\u0131n\u0131 ve uygulamalar\u0131n\u0131zda verileri g\u00fcvenle nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m ke\u015ffedeceksiniz. Modern uygulama geli\u015ftirmenin vazge\u00e7ilmezi olan konteyner teknolojileriyle birlikte veri y\u00f6netimi pratiklerini en etkili \u015fekilde \u00f6\u011frenerek sistemlerinizin s\u00fcreklili\u011fini garanti alt\u0131na al\u0131n.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-16T01:31:21+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=\"25 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak&#8230;\",\"datePublished\":\"2025-10-16T01:31:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/\"},\"wordCount\":4490,\"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-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/\",\"name\":\"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak...\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-16T01:31:21+00:00\",\"description\":\"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu makalede, Docker Volume'lar\u0131n ne oldu\u011funu, neden kritik \u00f6neme sahip olduklar\u0131n\u0131 ve uygulamalar\u0131n\u0131zda verileri g\u00fcvenle nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m ke\u015ffedeceksiniz. Modern uygulama geli\u015ftirmenin vazge\u00e7ilmezi olan konteyner teknolojileriyle birlikte veri y\u00f6netimi pratiklerini en etkili \u015fekilde \u00f6\u011frenerek sistemlerinizin s\u00fcreklili\u011fini garanti alt\u0131na al\u0131n.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak&#8230;\"}]},{\"@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 konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak...","description":"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu makalede, Docker Volume'lar\u0131n ne oldu\u011funu, neden kritik \u00f6neme sahip olduklar\u0131n\u0131 ve uygulamalar\u0131n\u0131zda verileri g\u00fcvenle nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m ke\u015ffedeceksiniz. Modern uygulama geli\u015ftirmenin vazge\u00e7ilmezi olan konteyner teknolojileriyle birlikte veri y\u00f6netimi pratiklerini en etkili \u015fekilde \u00f6\u011frenerek sistemlerinizin s\u00fcreklili\u011fini garanti alt\u0131na al\u0131n.","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-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/","og_locale":"tr_TR","og_type":"article","og_title":"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak...","og_description":"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu makalede, Docker Volume'lar\u0131n ne oldu\u011funu, neden kritik \u00f6neme sahip olduklar\u0131n\u0131 ve uygulamalar\u0131n\u0131zda verileri g\u00fcvenle nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m ke\u015ffedeceksiniz. Modern uygulama geli\u015ftirmenin vazge\u00e7ilmezi olan konteyner teknolojileriyle birlikte veri y\u00f6netimi pratiklerini en etkili \u015fekilde \u00f6\u011frenerek sistemlerinizin s\u00fcreklili\u011fini garanti alt\u0131na al\u0131n.","og_url":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-16T01:31:21+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"25 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak&#8230;","datePublished":"2025-10-16T01:31:21+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/"},"wordCount":4490,"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-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/","url":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/","name":"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak...","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-16T01:31:21+00:00","description":"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu makalede, Docker Volume'lar\u0131n ne oldu\u011funu, neden kritik \u00f6neme sahip olduklar\u0131n\u0131 ve uygulamalar\u0131n\u0131zda verileri g\u00fcvenle nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m ke\u015ffedeceksiniz. Modern uygulama geli\u015ftirmenin vazge\u00e7ilmezi olan konteyner teknolojileriyle birlikte veri y\u00f6netimi pratiklerini en etkili \u015fekilde \u00f6\u011frenerek sistemlerinizin s\u00fcreklili\u011fini garanti alt\u0131na al\u0131n.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/docker-konteynerlerinde-veri-kaliciligi-saglamak-cogu-zaman-karmasik-gorunebilir-bu-mak\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker konteynerlerinde veri kal\u0131c\u0131l\u0131\u011f\u0131 sa\u011flamak \u00e7o\u011fu zaman karma\u015f\u0131k g\u00f6r\u00fcnebilir. Bu mak&#8230;"}]},{"@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\/31964","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=31964"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31964\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}