Lapisan Imej dan Pengoptimuman
Ketahui cara imej Docker berlapis dan gunakan teknik untuk mengoptimumkan saiz imej serta masa binaan.
Lapisan Imej dan Pengoptimuman ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Lapisan Imej: Blok Binaan
Imej Docker bukanlah satu fail gergasi. Sebaliknya, imej ini dibina daripada beberapa lapisan baca sahaja. Bayangkan lapisan ini seperti helaian lutsinar yang disusun bertingkat.
Setiap lapisan mewakili perubahan pada imej, menjadikan imej cekap dan fleksibel. Pelapisan ini merupakan asas kepada cara Docker berfungsi.

Arahan Dockerfile dan Lapisan
Apabila anda menulis Dockerfile, hampir setiap arahan menghasilkan lapisan baharu di atas lapisan sebelumnya. Arahan seperti FROM, RUN, COPY dan ADD semuanya menyumbang kepada lapisan baharu.
Docker melaksanakan arahan ini secara berurutan, dengan membina setiap lapisan baharu berdasarkan keadaan lapisan sebelumnya.
Memeriksa Sejarah Imej
Anda boleh melihat lapisan yang membentuk imej menggunakan perintah docker history. Perintah ini memaparkan setiap arahan, saiznya dan masa ia dicipta, lalu membantu anda memahami perkembangan saiz imej.
Ini ialah alat yang berkuasa untuk menyahpepijat isu saiz imej.
docker history my-image:latestKelebihan Penyimpanan Cache Lapisan
Docker menggunakan cache binaan yang bijak. Jika arahan dalam Dockerfile anda dan konteksnya (contohnya, fail yang disalin) tidak berubah sejak binaan terakhir, Docker akan menggunakan semula lapisan sedia ada.
Penggunaan semula ini mempercepatkan binaan seterusnya dengan ketara kerana Docker tidak perlu melaksanakan semula langkah yang tidak berubah.
Pengoptimuman 1: Susunan Lapisan yang Bijak
Susunan arahan dalam Dockerfile anda amat penting untuk penggunaan cache yang berkesan. Letakkan arahan yang jarang berubah (seperti pemasangan kebergantungan sistem) di bahagian atas.
Arahan yang kerap berubah (seperti menyalin kod aplikasi anda) hendaklah diletakkan lebih ke bawah. Dengan cara ini, jika hanya kod anda yang berubah, Docker boleh menggunakan semula lapisan cache untuk kebergantungan yang stabil.
Contoh: Mengoptimumkan Susunan Lapisan
Bandingkan dua petikan Dockerfile ini. Susunan yang baik meletakkan kebergantungan yang stabil terlebih dahulu, membolehkan Docker menyimpannya dalam cache dan hanya membina semula lapisan untuk kod aplikasi yang berubah.
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "server.js"]Pengoptimuman 2: Menggabungkan Perintah RUN
Setiap perintah RUN biasanya menghasilkan lapisan baharu. Anda boleh mengurangkan bilangan lapisan dan selalunya saiz akhir imej dengan menggabungkan beberapa perintah menjadi satu arahan RUN.
Gunakan operator && \ untuk menyambungkan perintah, supaya semuanya menjadi sebahagian daripada satu lapisan atomik.
Contoh: Menyambungkan Perintah RUN
Daripada menggunakan beberapa perintah RUN, sambungkan perintah tersebut menggunakan && \. Ini menghasilkan satu lapisan yang lebih cekap untuk semua operasi ini.
FROM ubuntu:latest
RUN apt-get update && \
apt-get install -y curl && \
rm -rf /var/lib/apt/lists/*
CMD ["bash"]Pengoptimuman 3: Membersihkan Fail
Sentiasa bersihkan fail yang hanya diperlukan semasa proses binaan. Contohnya, cache pengurus pakej (seperti apt-get clean) atau artifak binaan sementara boleh menambahkan saiz yang ketara pada lapisan imej anda.
Membersihkannya dalam perintah RUN yang sama dengan perintah yang menciptanya memastikan fail tersebut tidak kekal dalam lapisan sebelumnya.
Semakan Pantas: Pengoptimuman Imej
Perhatikan petikan Dockerfile berikut:
FROM alpine:latest
COPY . /app
RUN apk add --no-cache git
RUN apk add --no-cache make
CMD ["sh"]Perubahan yang manakah paling baik untuk mengoptimumkan Dockerfile ini bagi menghasilkan saiz imej yang lebih kecil dan binaan semula yang berpotensi lebih pantas?
Imbas Kembali: Imej Lebih Ringan dan Pantas
Anda telah mempelajari bahawa imej Docker dibina dalam lapisan, dan setiap arahan biasanya menghasilkan lapisan baharu. Memahami perkara ini penting untuk pengoptimuman!
- Susun arahan dengan teliti untuk memaksimumkan penggunaan semula cache binaan.
- Gabungkan beberapa perintah
RUNmenjadi satu untuk mengurangkan lapisan. - Bersihkan fail sementara dalam perintah
RUNmasing-masing supaya lapisan kekal kecil.
Teknik ini membantu menghasilkan imej Docker yang lebih kecil dan dibina dengan lebih pantas, yang penting untuk penggunaan yang cekap.
Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 142
- Pelajaran
- 568
Soalan Lazim
Adakah pelajaran “Lapisan Imej dan Pengoptimuman” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Lapisan Imej dan Pengoptimuman”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Lapisan Imej dan Pengoptimuman”?
Ketahui cara imej Docker berlapis dan gunakan teknik untuk mengoptimumkan saiz imej serta masa binaan. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Lapisan Imej dan Pengoptimuman” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?
Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Memahami Dockerfile
- Mencipta Imej Docker Tersuai
- Lapisan Imej dan Pengoptimuman
- Binaan Berbilang Peringkat dan Imej Lebih Kecil