Saya memiliki wadah yang menjalankan GlassFish. Ketika saya mencoba mengkomit gambar, itu menjadi 14GB. Kemudian, saya menghapus /tmp/
dalam wadah yang 10GB dan mencoba mengkomit, tapi tetap saja 14GB. Tampaknya menghapus file dari wadah tidak tercermin dalam ukuran gambar. Bagaimana saya memperbaiki masalah ini?
12
glassfish
Docker resmi adalah sekitar 1 GB. Meskipun sangat besar untuk gambar Docker, itu masih jauh lebih kecil dari apa yang Anda tampaknya sedang membangun.Jawaban:
Masalah yang mungkin Anda hadapi adalah bahwa menghapus file dalam komit tidak mengubah fakta bahwa file itu ada di gambar sebelumnya, sehingga gambar sebelumnya masih 14G.
Lihatlah bagian "Layers" di artikel ini: http://woudenberg.io/reducing-docker-image-size/
Untuk mengatasi masalah itu, Anda perlu menghapus hal-hal di bawah / tmp / dalam komit asli yang menghasilkannya, sehingga gambar yang dibuat sebagai hasil dari komit itu tidak termasuk mereka. Itu mudah ketika menggunakan buruh pelabuhan tetapi tidak yakin jika mungkin ketika membuat gambar dengan komit.
Hal lain yang mungkin dapat Anda lakukan adalah layer squash dengan mengekspor / mengimpor gambar.
sumber
Memperluas jawaban @Juan Antonio,
Dockerfile
melakukan hal ini tidak akan menghemat ruang:Yang perlu Anda lakukan adalah:
Di sisi bawah, ini berarti lebih sedikit caching seolah-olah ada perubahan dalam baris perintah besar, Docker harus menjalankan kembali seluruh rangkaian perintah.
sumber