{"id":613,"date":"2026-10-01T12:00:00","date_gmt":"2026-10-01T12:00:00","guid":{"rendered":"https:\/\/konteynerium.com\/index.php\/2026\/10\/01\/docker-disk-kullanimi-ve-temizlik-system-df-prune\/"},"modified":"2026-10-01T12:00:00","modified_gmt":"2026-10-01T12:00:00","slug":"docker-disk-kullanimi-ve-temizlik-system-df-prune","status":"publish","type":"post","link":"https:\/\/konteynerium.com\/index.php\/2026\/10\/01\/docker-disk-kullanimi-ve-temizlik-system-df-prune\/","title":{"rendered":"Docker Disk Kullan\u0131m\u0131 ve Temizlik: system df, prune ve Tuzaklar"},"content":{"rendered":"<p>Docker&#8217;\u0131 bir s\u00fcre kulland\u0131ktan sonra disk dolmaya ba\u015flar: eski imajlar, durmu\u015f container&#8217;lar, kullan\u0131lmayan volume&#8217;ler ve build \u00f6nbelle\u011fi sessizce birikir. \u0130yi haber: Docker bunu \u00f6l\u00e7mek ve temizlemek i\u00e7in yerle\u015fik komutlar sunar. K\u00f6t\u00fc haber: <code>prune<\/code> komutlar\u0131 yanl\u0131\u015f kullan\u0131l\u0131rsa veri kaybettirebilir. Bu yaz\u0131da \u00f6nce \u00f6l\u00e7meyi, sonra g\u00fcvenle temizlemeyi \u00f6\u011freniyoruz.<\/p>\n<h2>\u00d6nce \u00f6l\u00e7: <code>docker system df<\/code><\/h2>\n<pre><code>$ docker system df\nTYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE\nImages          4         0         161.5MB   94.98MB (58%)\nContainers      0         0         0B        0B\nLocal Volumes   0         0         0B        0B\nBuild Cache     14        0         76.44MB   57.34kB<\/code><\/pre>\n<p>D\u00f6rt kalem vard\u0131r: imajlar, container&#8217;lar, volume&#8217;ler ve build \u00f6nbelle\u011fi. <strong>RECLAIMABLE<\/strong> s\u00fctunu, \u015fu anda hi\u00e7bir container&#8217;\u0131n kullanmad\u0131\u011f\u0131 ve g\u00fcvenle geri kazan\u0131labilecek alan\u0131 g\u00f6sterir. Ayr\u0131nt\u0131 i\u00e7in <code>docker system df -v<\/code> her imaj, container ve volume&#8217;\u00fc tek tek listeler.<\/p>\n<h2>Neyi temizledi\u011finizi bilin<\/h2>\n<table>\n<thead>\n<tr>\n<th>Komut<\/th>\n<th>Neyi siler?<\/th>\n<th>Risk<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>docker container prune<\/code><\/td>\n<td>Durmu\u015f t\u00fcm container&#8217;lar\u0131<\/td>\n<td>D\u00fc\u015f\u00fck \u2014 ama durmu\u015f container&#8217;\u0131n yaz\u0131labilir katman\u0131ndaki veri gider<\/td>\n<\/tr>\n<tr>\n<td><code>docker image prune<\/code><\/td>\n<td>Etiketsiz (&#8220;dangling&#8221;) imajlar\u0131<\/td>\n<td>D\u00fc\u015f\u00fck<\/td>\n<\/tr>\n<tr>\n<td><code>docker image prune -a<\/code><\/td>\n<td>\u00c7al\u0131\u015fan bir container&#8217;\u0131n kullanmad\u0131\u011f\u0131 <strong>t\u00fcm<\/strong> imajlar\u0131<\/td>\n<td>Orta \u2014 sonra yeniden indirmeniz gerekir<\/td>\n<\/tr>\n<tr>\n<td><code>docker volume prune<\/code><\/td>\n<td>Kullan\u0131lmayan <em>anonim<\/em> volume&#8217;leri<\/td>\n<td><strong>Y\u00fcksek<\/strong> \u2014 veri kal\u0131c\u0131 silinir<\/td>\n<\/tr>\n<tr>\n<td><code>docker builder prune<\/code><\/td>\n<td>Build \u00f6nbelle\u011fini<\/td>\n<td>D\u00fc\u015f\u00fck \u2014 sonraki build yava\u015flar<\/td>\n<\/tr>\n<tr>\n<td><code>docker system prune<\/code><\/td>\n<td>Durmu\u015f container + etiketsiz imaj + kullan\u0131lmayan a\u011f + (\u00f6nbellek)<\/td>\n<td>Orta<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Tuzak 1: <code>system prune<\/code> volume&#8217;lere dokunmaz<\/h2>\n<p>S\u0131k yap\u0131lan bir varsay\u0131m &#8220;<code>docker system prune<\/code> her \u015feyi temizler&#8221; olsa da volume&#8217;ler varsay\u0131lan olarak <em>hari\u00e7tir<\/em>. Deneyde kullan\u0131lmayan, adland\u0131r\u0131lm\u0131\u015f bir volume olu\u015fturup s\u0131rayla \u015funlar\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131k:<\/p>\n<pre><code>$ docker volume create vol_unused\n$ docker system prune -f              # volume h\u00e2l\u00e2 duruyor\n$ docker system prune -f --volumes    # volume H\u00c2L\u00c2 duruyor\n$ docker volume prune -a -f           # \u015fimdi siliniyor\nvol_unused<\/code><\/pre>\n<p>Docker 23&#8217;ten beri <code>--volumes<\/code> ve <code>docker volume prune<\/code> yaln\u0131zca <strong>anonim<\/strong> volume&#8217;leri siler; adland\u0131r\u0131lm\u0131\u015f (named) volume&#8217;leri silmek i\u00e7in <code>-a<\/code> (<code>--all<\/code>) bayra\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a vermeniz gerekir. Bu, kazara veri kayb\u0131na kar\u015f\u0131 bilin\u00e7li bir g\u00fcvenlik \u00f6nlemidir \u2014 veritaban\u0131 volume&#8217;\u00fcn\u00fcz yanl\u0131\u015fl\u0131kla gitmez. <code>-a<\/code> kullanmadan \u00f6nce <code>docker volume ls<\/code> \u00e7\u0131kt\u0131s\u0131na mutlaka bak\u0131n.<\/p>\n<h2>Tuzak 2: <code>image prune -a<\/code> bekledi\u011finizden fazlas\u0131n\u0131 siler<\/h2>\n<p>&#8220;Kullan\u0131lmayan imaj&#8221;, <em>\u015fu anda bir container&#8217;a ba\u011fl\u0131 olmayan<\/em> imaj demektir. Test ortam\u0131m\u0131zda <code>docker image prune -a -f<\/code> \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda, \u00fczerinde \u00e7al\u0131\u015fan container olmayan temel imaj\u0131m\u0131z da dahil <strong>her \u015fey<\/strong> silindi:<\/p>\n<pre><code>$ docker image prune -a -f\ndeleted: sha256:33c119...\ndeleted: sha256:032024...\n$ docker images\n(bo\u015f)<\/code><\/pre>\n<p>Bu, bir CI sunucusunda ya da bir geli\u015ftirme makinesinde sonraki build&#8217;lerin t\u00fcm temel imajlar\u0131 ba\u015ftan indirmesi anlam\u0131na gelir. Yaln\u0131zca &#8220;bir haftadan eski&#8221; olanlar\u0131 temizlemek i\u00e7in filtre kullan\u0131n:<\/p>\n<pre><code>docker image prune -a --filter \"until=168h\"<\/code><\/pre>\n<h2>Etiketsiz (dangling) imaj nedir?<\/h2>\n<p>Ayn\u0131 etiketle yeni bir imaj build etti\u011finizde eski imaj etiketini kaybeder ve <code>&lt;none&gt;<\/code> olarak g\u00f6r\u00fcn\u00fcr. Bu imajlar hi\u00e7bir \u015feye ba\u011fl\u0131 olmad\u0131\u011f\u0131ndan <code>docker image prune<\/code> (<code>-a<\/code> olmadan) g\u00fcvenle siler. Listelemek i\u00e7in:<\/p>\n<pre><code>docker images -f dangling=true<\/code><\/pre>\n<p>Not: Kendi denememizde (containerd imaj deposu kullanan Docker 29.4) ayn\u0131 etiketi yeniden build ettikten sonra <code>dangling=true<\/code> listesi bo\u015f geldi; containerd deposunda etiketsiz imajlar eski depodan farkl\u0131 davranabilir. Ger\u00e7ek durumdan emin olmak i\u00e7in tahmin y\u00fcr\u00fctmek yerine <code>docker system df<\/code>&#8216;deki RECLAIMABLE de\u011ferine g\u00fcvenin.<\/p>\n<h2>\u00d6nerilen rutin<\/h2>\n<ol>\n<li><code>docker system df<\/code> ile durumu g\u00f6r\u00fcn.<\/li>\n<li>\u00d6nce g\u00fcvenli olanlarla ba\u015flay\u0131n: <code>docker container prune<\/code>, <code>docker image prune<\/code>, <code>docker builder prune<\/code>.<\/li>\n<li>H\u00e2l\u00e2 yer laz\u0131msa <code>docker image prune -a --filter \"until=168h\"<\/code> kullan\u0131n.<\/li>\n<li>Volume&#8217;lere yaln\u0131zca <code>docker volume ls<\/code> ile tek tek bakt\u0131ktan sonra, bilerek dokunun.<\/li>\n<li>Sunucularda bunu bir cron g\u00f6revi olarak zamanlayacaksan\u0131z <code>-f<\/code> ve <code>--filter until=...<\/code> kullan\u0131n, <code>--volumes<\/code>&#8216;\u0131 <em>asla<\/em> otomatikle\u015ftirmeyin.<\/li>\n<\/ol>\n<div class=\"callout\">\n  <span class=\"glyph\">!<\/span><\/p>\n<p>\u00dcretim sunucusunda temizlik komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce hangi volume&#8217;lerin veritaban\u0131 gibi kal\u0131c\u0131 veri ta\u015f\u0131d\u0131\u011f\u0131n\u0131 bildi\u011finizden emin olun. Volume mant\u0131\u011f\u0131 i\u00e7in <a href=\"https:\/\/konteynerium.com\/index.php\/2026\/07\/24\/docker-volumes-kalici-veri-yonetimi\/\">Docker Volumes<\/a> yaz\u0131s\u0131na bak\u0131n.<\/p>\n<\/div>\n<p>S\u0131radaki ad\u0131m: imajlar\u0131 ba\u015ftan k\u00fc\u00e7\u00fck tutarak diskte yer kazanmak i\u00e7in <a href=\"https:\/\/konteynerium.com\/index.php\/2026\/10\/02\/multi-stage-build-ile-kucuk-imajlar\/\">Multi-Stage Build<\/a> yaz\u0131s\u0131na ge\u00e7in.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker diski neden doldurur ve nas\u0131l g\u00fcvenle temizlenir? docker system df ile \u00f6l\u00e7\u00fcm, prune komutlar\u0131n\u0131n farklar\u0131 ve volume&#8217;lerin neden varsay\u0131lan olarak silinmedi\u011fi gibi ger\u00e7ek tuzaklar.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"seviye":[7],"class_list":["post-613","post","type-post","status-publish","format-standard","hentry","category-temel-kavramlar","seviye-baslangic"],"_links":{"self":[{"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/posts\/613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/comments?post=613"}],"version-history":[{"count":0,"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/posts\/613\/revisions"}],"wp:attachment":[{"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/media?parent=613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/categories?post=613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/tags?post=613"},{"taxonomy":"seviye","embeddable":true,"href":"https:\/\/konteynerium.com\/index.php\/wp-json\/wp\/v2\/seviye?post=613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}