GNU/Linux >> Belajar Linux >  >> Ubuntu

Ukuran Gambar Docker - Bagaimana Menjaganya Tetap Kecil?

Pendahuluan

Gambar Docker adalah komponen penting yang digunakan untuk membangun wadah Docker. Meskipun terkait erat, ada perbedaan besar antara image dan container Docker.

Gambar buruh pelabuhan adalah dasar dari sebuah wadah. Gambar-gambar ini dibuat dengan menulis Dockerfiles, daftar instruksi yang dijalankan secara otomatis untuk membuat gambar Docker tertentu.

Saat membuat image Docker, Anda ingin memastikannya tetap ringan. Menghindari gambar besar akan mempercepat pembuatan dan penerapan container. Oleh karena itu, sangat penting untuk mengurangi ukuran gambar seminimal mungkin.

Baca terus untuk mempelajari cara menjaga agar gambar Docker Anda tetap kecil.

Gunakan Basis Gambar yang Lebih Kecil (Alpine)

Untuk membuat image Docker, Anda memerlukan basis di mana Anda dapat menginstal dan menambahkan komponen, sesuai kebutuhan. Anda dapat mengunduh gambar induk yang ada dan menggunakannya sebagai dasar gambar Anda sendiri atau membuatnya dari awal.

Anda menginstal variasi sistem operasi sebagai dasar gambar. Basis OS dapat secara drastis memengaruhi ukuran gambar Docker akhir Anda, itulah sebabnya menentukan yang tepat memainkan peran penting.

Linux menciptakan alternatif bermanfaat yang ringan dan memiliki lingkungan POSIX minimal – Alpine. Basis gambar distribusi Linux ini hanya 5 MB, dibangun di sekitar libc musl dan BusyBox.

Dibandingkan dengan gambar OS lainnya, ukuran Alpine jauh lebih kecil. Gambar OS yang paling banyak diunduh, Ubuntu, adalah 188 MB, sedangkan Alpine hanya 5 MB.

Gunakan File .dockerignore

Mengecualikan file tertentu yang tidak diperlukan untuk gambar Anda dapat membantu Anda mengurangi ukuran gambar. Di situlah .dockerignore file masuk.

Saat membuat gambar, Anda menulis Dockerfile dengan spesifikasi seperti apa gambar itu seharusnya.

Saat menguraikan konteks build, penting juga untuk menyertakan file .dockerignore dan menyimpannya di folder yang sama dengan Dockerfile.

Fitur Docker ini dimulai dengan docker run . Sistem memeriksa apakah ada file seperti itu dan menerapkan pengecualiannya dan mengabaikan aturan. Dengan begitu, Anda menghapus konten yang tidak relevan dari konteks yang dibuat.

Manfaatkan Fitur Pembuatan Multi-Tahap di Docker

Docker memperkenalkan fitur multi-tahap dalam versi 17.05-nya. Ini memungkinkan pengguna untuk membagi Dockerfile menjadi beberapa tahap.

Setiap tahap dimulai dengan FROM petunjuk. Artefak yang diperlukan lolos ke tahap berikutnya, meninggalkan konten yang tidak Anda perlukan di artefak gambar akhir.

Karena prosesnya hanya mentransfer komponen artefak yang diperlukan, Anda tidak perlu membersihkan secara manual setelah setiap instruksi.

Dengan fitur multi-tahap, Anda tidak perlu menambahkan lapisan yang tidak perlu, yang berdampak besar pada ukuran gambar secara keseluruhan.

Hindari Menambahkan Lapisan yang Tidak Perlu untuk Mengurangi Ukuran Gambar Docker

Gambar Docker membutuhkan lebih banyak ruang dengan setiap lapisan yang Anda tambahkan ke dalamnya. Oleh karena itu, semakin banyak lapisan yang Anda miliki, semakin banyak ruang yang dibutuhkan gambar.

Setiap RUN instruksi di Dockerfile menambahkan layer baru ke gambar Anda. Itulah mengapa Anda harus mencoba melakukan manipulasi file di dalam satu RUN memerintah. Juga, gabungkan perintah yang berbeda menjadi satu instruksi menggunakan && pilihan.

Misalnya, Anda dapat memperbarui repositori dan menginstal beberapa paket dalam satu RUN petunjuk. Untuk mendapatkan garis yang jelas dan komprehensif, gunakan garis miring terbalik (\ ) untuk mengetikkan perintah dalam beberapa baris.

Selain memperbarui dan menginstal paket, Anda juga harus membersihkan cache apt dengan && rm -rf /var/lib/apt/lists/* untuk menghemat lebih banyak ruang.

RUN apt-get update && apt-get install -y\
         [package-one] \
         [package-two] 
   && rm -rf /var/lib/apt/lists/*

Hati-hati terhadap Pembaruan dan Paket dan Ketergantungan yang Tidak Perlu

Cara lain untuk menghemat ruang dan menjaga agar image Docker Anda tetap kecil adalah dengan memastikan Anda menjalankan versi terbaru dari platform yang sedang Anda bangun.

Dengan memiliki versi terbaru, Anda menghindari pembaruan ekstensif yang mengunduh paket rpm yang tak terhitung jumlahnya dan menghabiskan banyak ruang.

Menginstal sebuah paket juga sering kali menyertakan pengunduhan dependensi yang menjadi sandaran perangkat lunak. Namun, terkadang unduhan juga akan menyimpan paket yang tidak diperlukan tetapi lebih disarankan.

Paket yang tidak diinginkan tersebut dapat bertambah dan menghabiskan banyak ruang disk. Untuk mengunduh hanya dependensi utama, tambahkan --no-install-recommends opsi untuk perintah instal.

Misalnya:

RUN apt-get install --no-install-recommends [package-one]

Kiat Bonus:Caching

Meskipun tip ini tidak memengaruhi ukuran keseluruhan gambar Docker, tip ini membantu pembuatan Docker yang lebih cepat.

Docker mempercepat pembuatan gambar dengan menyimpan secara lokal lapisan Dockerfile yang ada dan menggunakannya untuk membangun kembali gambar lebih cepat.

Misalnya, bayangkan Anda memiliki Dockerfile sederhana yang terdiri dari tiga lapisan. Setelah Anda membuat gambar dari file itu, sistem secara otomatis menyimpan ketiga lapisan ini. Saat berikutnya Anda membuat gambar, gambar akan dimuat dari cache lokal.

Jika Anda memutuskan untuk memodifikasi gambar dan mengubah salah satu lapisan, cache tidak akan digunakan untuk apa pun setelah lapisan diubah.

Kami merekomendasikan untuk memesan instruksi dengan cara yang meningkatkan efisiensi dan menggunakan fitur caching. Tempatkan instruksi yang cenderung berubah serendah mungkin di Dockerfile.


Ubuntu
  1. Cara Menginstal Docker di Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  2. Cara Memindahkan Gambar Docker antar Host

  3. Cara Mengurangi Ukuran Gambar Docker:6 Metode Optimasi

  1. Cara Memodifikasi Gambar Docker

  2. Cara membuat gambar khusus dari wadah Docker

  3. Cara memperbarui/menambahkan file di Gambar Docker

  1. Cara Menggunakan Dockerfile untuk Membangun Gambar Docker

  2. Cara Berbagi Gambar Docker Dengan Orang Lain

  3. Cara melakukan perubahan pada gambar Docker