0Pricing
DevOps Bootcamp · Pelajaran

Lapisan dan Optimasi Image

Temukan cara image Docker disusun berlapis dan terapkan teknik untuk mengoptimalkan ukuran image serta waktu build.

Lapisan dan Optimasi Image adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Lapisan Citra: Blok Penyusun

Citra Docker bukanlah satu berkas raksasa. Sebaliknya, citra tersebut dibangun dari serangkaian lapisan hanya-baca. Bayangkan lapisan-lapisan ini seperti lembaran transparansi yang ditumpuk.

Setiap lapisan mewakili perubahan pada citra, sehingga citra menjadi efisien dan fleksibel. Pelapisan ini merupakan dasar dari cara kerja Docker.

Lapisan dan Optimasi Image — ilustrasi 1

Instruksi Dockerfile & Lapisan

Saat menulis Dockerfile, hampir setiap instruksi membuat lapisan baru di atas lapisan sebelumnya. Instruksi seperti FROM, RUN, COPY, dan ADD semuanya berkontribusi pada lapisan baru.

Docker menjalankan instruksi-instruksi ini secara berurutan, dengan membangun setiap lapisan baru berdasarkan keadaan lapisan sebelumnya.

Memeriksa Riwayat Citra

Anda dapat melihat lapisan yang menyusun sebuah citra menggunakan perintah docker history. Perintah ini menampilkan setiap instruksi, ukurannya, dan waktu pembuatannya, sehingga membantu Anda memahami bagaimana citra tersebut berkembang.

Ini adalah alat yang ampuh untuk menelusuri masalah ukuran citra.

docker history my-image:latest

Kekuatan Penyimpanan Tembolok Lapisan

Docker menggunakan tembolok pembangunan yang cerdas. Jika sebuah instruksi dalam Dockerfile dan konteksnya (misalnya, berkas yang disalin) tidak berubah sejak pembangunan terakhir, Docker akan menggunakan kembali lapisan yang sudah ada.

Penggunaan kembali ini secara drastis mempercepat pembangunan berikutnya karena Docker tidak perlu menjalankan ulang langkah-langkah yang tidak berubah.

Optimasi 1: Urutan Lapisan yang Cerdas

Urutan instruksi dalam Dockerfile sangat penting agar penggunaan tembolok efektif. Letakkan instruksi yang jarang berubah (seperti pemasangan dependensi sistem) di bagian atas.

Instruksi yang sering berubah (seperti menyalin kode aplikasi Anda) sebaiknya diletakkan lebih bawah. Dengan demikian, jika hanya kode Anda yang berubah, Docker dapat menggunakan kembali lapisan yang di-tembolok untuk dependensi yang tetap.

Contoh: Mengoptimalkan Urutan Lapisan

Bandingkan dua potongan Dockerfile berikut. Urutan yang baik menempatkan dependensi yang stabil terlebih dahulu, sehingga Docker dapat menyimpannya dalam tembolok dan hanya membangun ulang lapisan untuk kode aplikasi yang berubah.

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "server.js"]

Optimasi 2: Menggabungkan Perintah RUN

Setiap perintah RUN biasanya membuat lapisan baru. Anda dapat mengurangi jumlah lapisan dan sering kali ukuran akhir citra dengan menggabungkan beberapa perintah menjadi satu instruksi RUN.

Gunakan operator && \ untuk merangkai perintah, sehingga semuanya menjadi bagian dari satu lapisan atomik.

Contoh: Merangkai Perintah RUN

Alih-alih menggunakan beberapa perintah RUN, rangkailah semuanya dengan && \. Dengan cara ini, semua operasi tersebut dibuat dalam satu lapisan yang lebih efisien.

FROM ubuntu:latest
RUN apt-get update && \
    apt-get install -y curl && \
    rm -rf /var/lib/apt/lists/*
CMD ["bash"]

Optimasi 3: Membersihkan Berkas

Selalu bersihkan berkas yang hanya diperlukan selama proses pembangunan. Misalnya, tembolok pengelola paket (seperti apt-get clean) atau artefak pembangunan sementara dapat menambah ukuran yang signifikan pada lapisan citra Anda.

Membersihkannya dalam perintah RUN yang sama dengan perintah yang membuatnya memastikan berkas-berkas tersebut tidak tersimpan di lapisan sebelumnya.

Pemeriksaan Singkat: Optimasi Citra

Perhatikan potongan Dockerfile berikut:

FROM alpine:latest
COPY . /app
RUN apk add --no-cache git
RUN apk add --no-cache make
CMD ["sh"]

Perubahan manakah berikut ini yang paling baik untuk mengoptimalkan Dockerfile ini agar ukuran citra lebih kecil dan pembangunan ulang berpotensi lebih cepat?

Rangkuman: Citra Lebih Ringan dan Cepat

Anda telah mempelajari bahwa citra Docker dibangun dalam lapisan, dan setiap instruksi sering kali membuat lapisan baru. Memahami hal ini adalah kunci optimasi!

  • Urutkan instruksi dengan cermat untuk memaksimalkan penggunaan tembolok pembangunan.
  • Gabungkan beberapa perintah RUN menjadi satu untuk mengurangi jumlah lapisan.
  • Bersihkan berkas sementara dalam perintah RUN masing-masing agar lapisan tetap kecil.

Teknik-teknik ini membantu membuat citra Docker yang lebih kecil dan dibangun lebih cepat, yang penting untuk penerapan yang efisien.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Lapisan dan Optimasi Image” gratis?

Ya — teks lengkap “Lapisan dan Optimasi Image” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Lapisan dan Optimasi Image”?

Temukan cara image Docker disusun berlapis dan terapkan teknik untuk mengoptimalkan ukuran image serta waktu build. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Lapisan dan Optimasi Image” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memahami Dockerfile
  2. Membuat Image Docker Kustom
  3. Lapisan dan Optimasi Image
  4. Build Multi-Tahap dan Image yang Lebih Kecil
← Kembali ke DevOps Bootcamp