<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>docker cleanup &#8211; Yoga Ari Tofan, S.Kom., M.Kom.</title>
	<atom:link href="https://yogatofan.com/tag/docker-cleanup/feed/" rel="self" type="application/rss+xml" />
	<link>https://yogatofan.com</link>
	<description>Masih ngoding, tapi sekarang sambil ngasih nilai.</description>
	<lastBuildDate>Mon, 27 Jul 2026 05:05:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://yogatofan.com/wp-content/uploads/2026/01/icon-1.webp</url>
	<title>docker cleanup &#8211; Yoga Ari Tofan, S.Kom., M.Kom.</title>
	<link>https://yogatofan.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Membersihkan Docker Images yang Sudah Tidak Terpakai Agar Disk Server Tetap Lega</title>
		<link>https://yogatofan.com/blog/membersihkan-docker-images-yang-sudah-tidak-terpakai-agar-disk-server-tetap-lega/</link>
		
		<dc:creator><![CDATA[yogatofan]]></dc:creator>
		<pubDate>Mon, 27 Jul 2026 05:05:42 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[docker cleanup]]></category>
		<category><![CDATA[docker compose]]></category>
		<category><![CDATA[docker images]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://yogatofan.com/?p=444</guid>

					<description><![CDATA[Salah satu hal yang sering tidak disadari ketika menggunakan Docker dalam jangka waktu lama adalah ukuran penyimpanan yang terus bertambah. Setiap kali melakukan build ataupun upgrade aplikasi, Docker biasanya menyimpan image lama sebagai cache atau referensi rollback. Lama-kelamaan image tersebut akan memenuhi storage server meskipun sudah tidak digunakan lagi oleh container mana pun. Artikel ini [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Salah satu hal yang sering tidak disadari ketika menggunakan Docker dalam jangka waktu lama adalah ukuran penyimpanan yang terus bertambah.</p>



<p class="wp-block-paragraph">Setiap kali melakukan build ataupun upgrade aplikasi, Docker biasanya menyimpan image lama sebagai cache atau referensi rollback. Lama-kelamaan image tersebut akan memenuhi storage server meskipun sudah tidak digunakan lagi oleh container mana pun.</p>



<p class="wp-block-paragraph">Artikel ini merupakan catatan pribadi mengenai cara membersihkan Docker image yang sudah tidak dipakai dengan aman.</p>



<h2 class="wp-block-heading">Mengapa Image Lama Tidak Langsung Dihapus?</h2>



<p class="wp-block-paragraph">Docker sengaja menyimpan image lama karena beberapa alasan:</p>



<ul class="wp-block-list">
<li>mempercepat proses build berikutnya,</li>



<li>memungkinkan rollback,</li>



<li>menghindari download ulang image yang sama.</li>
</ul>



<p class="wp-block-paragraph">Akibatnya, setelah beberapa bulan penggunaan, jumlah image bisa menjadi sangat banyak.</p>



<p class="wp-block-paragraph">Cek terlebih dahulu daftar image:</p>



<pre class="wp-block-code"><code>docker images
</code></pre>



<p class="wp-block-paragraph">Contoh:</p>



<pre class="wp-block-code"><code>REPOSITORY        TAG       IMAGE ID       SIZE
nginx             latest    a12bc34d       195MB
postgres          16        b23cd45e       450MB
redis             latest    c34de56f       130MB
my-app            latest    d45ef67g       600MB
&lt;none&gt;            &lt;none&gt;    e56fg78h       600MB
</code></pre>



<p class="wp-block-paragraph">Image dengan tag <code>&lt;none&gt;</code> biasanya merupakan image yang sudah tidak memiliki referensi (dangling image).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Menghapus Dangling Images</h2>



<p class="wp-block-paragraph">Cara paling aman adalah menghapus dangling images terlebih dahulu.</p>



<pre class="wp-block-code"><code>docker image prune
</code></pre>



<p class="wp-block-paragraph">Docker akan meminta konfirmasi.</p>



<pre class="wp-block-code"><code>WARNING! This will remove all dangling images.
Are you sure you want to continue? &#91;y/N]
</code></pre>



<p class="wp-block-paragraph">Tekan:</p>



<pre class="wp-block-code"><code>y
</code></pre>



<p class="wp-block-paragraph">Perintah ini hanya menghapus image yang benar-benar tidak memiliki tag lagi.</p>



<p class="wp-block-paragraph">Container yang sedang berjalan tidak akan terganggu.</p>



<p class="wp-block-paragraph">Ini merupakan perintah yang paling sering saya gunakan setelah beberapa kali build aplikasi.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Menghapus Semua Image yang Tidak Dipakai Container</h2>



<p class="wp-block-paragraph">Jika ingin membersihkan lebih agresif, gunakan:</p>



<pre class="wp-block-code"><code>docker image prune -a
</code></pre>



<p class="wp-block-paragraph">atau</p>



<pre class="wp-block-code"><code>docker image prune --all
</code></pre>



<p class="wp-block-paragraph">Berbeda dengan perintah sebelumnya, opsi <code>-a</code> akan menghapus seluruh image yang <strong>tidak sedang digunakan oleh container mana pun</strong>, termasuk image yang masih memiliki tag tetapi sudah tidak dipakai.</p>



<p class="wp-block-paragraph">Perintah ini cukup efektif untuk menghemat storage setelah beberapa kali upgrade aplikasi.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Melihat Penggunaan Disk Docker</h2>



<p class="wp-block-paragraph">Sebelum menghapus image, saya biasanya melihat terlebih dahulu penggunaan storage Docker.</p>



<pre class="wp-block-code"><code>docker system df
</code></pre>



<p class="wp-block-paragraph">Contoh output:</p>



<pre class="wp-block-code"><code>TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          15        4         8.4GB     5.9GB (70%)
Containers      8         2         450MB     200MB
Volumes         6         3         4.2GB     0B
Build Cache     32        0         1.7GB     1.7GB
</code></pre>



<p class="wp-block-paragraph">Penjelasan kolom:</p>



<ul class="wp-block-list">
<li><strong>TOTAL</strong> menunjukkan jumlah resource.</li>



<li><strong>ACTIVE</strong> adalah resource yang masih digunakan.</li>



<li><strong>SIZE</strong> merupakan total ukuran.</li>



<li><strong>RECLAIMABLE</strong> menunjukkan ruang yang dapat dibebaskan.</li>
</ul>



<p class="wp-block-paragraph">Dari output tersebut kita bisa mengetahui apakah image memang menjadi penyebab storage penuh atau justru volume maupun build cache.</p>



<p class="wp-block-paragraph">Perintah ini sangat berguna sebelum dan sesudah melakukan proses cleanup.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Menghapus Image Tertentu</h2>



<p class="wp-block-paragraph">Apabila hanya ingin menghapus image tertentu, tampilkan daftar image terlebih dahulu.</p>



<pre class="wp-block-code"><code>docker images
</code></pre>



<p class="wp-block-paragraph">Misalnya:</p>



<pre class="wp-block-code"><code>REPOSITORY     TAG      IMAGE ID
nginx          latest   9f8ab1234abc
redis          latest   8c7de4567def
</code></pre>



<p class="wp-block-paragraph">Kemudian hapus menggunakan IMAGE ID.</p>



<pre class="wp-block-code"><code>docker rmi 9f8ab1234abc
</code></pre>



<p class="wp-block-paragraph">Atau menggunakan nama image.</p>



<pre class="wp-block-code"><code>docker rmi nginx:latest
</code></pre>



<p class="wp-block-paragraph">Jika image masih digunakan oleh sebuah container, Docker akan menolak proses penghapusan dengan pesan serupa berikut.</p>



<pre class="wp-block-code"><code>Error response from daemon:
conflict: unable to remove repository reference
</code></pre>



<p class="wp-block-paragraph">Hal ini merupakan mekanisme perlindungan agar container yang masih aktif tidak kehilangan image yang menjadi dasarnya.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Tips Maintenance Berkala</h2>



<p class="wp-block-paragraph">Agar storage server tetap terkendali, saya biasanya melakukan langkah berikut setelah selesai melakukan upgrade aplikasi:</p>



<pre class="wp-block-code"><code>docker compose pull

docker compose up -d

docker system df

docker image prune -a
</code></pre>



<p class="wp-block-paragraph">Dengan workflow tersebut saya bisa:</p>



<ul class="wp-block-list">
<li>memastikan aplikasi menggunakan image terbaru,</li>



<li>melihat berapa banyak storage yang dapat dibebaskan,</li>



<li>menghapus image lama yang sudah tidak digunakan,</li>



<li>menjaga kapasitas disk tetap lega tanpa mengganggu container yang sedang berjalan.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Penutup</h2>



<p class="wp-block-paragraph">Docker memang dirancang agar image lama tetap tersimpan untuk berbagai kebutuhan seperti cache dan rollback. Namun apabila server digunakan dalam jangka panjang, image yang menumpuk dapat menghabiskan storage tanpa disadari.</p>



<p class="wp-block-paragraph">Perintah <code>docker image prune</code> cocok digunakan untuk membersihkan dangling image dengan aman, sedangkan <code>docker image prune -a</code> lebih tepat ketika ingin membersihkan seluruh image yang sudah tidak digunakan oleh container.</p>



<p class="wp-block-paragraph">Sebelum melakukan penghapusan, saya juga membiasakan mengecek penggunaan storage menggunakan <code>docker system df</code>, dan jika hanya ingin membersihkan image tertentu, <code>docker rmi</code> menjadi pilihan yang paling tepat.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
