Asas Docker dan DevOps · Pelajaran

Lapisan Imej dan Pengoptimuman

Ketahui cara imej Docker berlapis dan gunakan teknik untuk mengoptimumkan saiz imej serta masa binaan.

Pelajaran 3 daripada 411 langkah

Lapisan Imej dan Pengoptimuman ialah pelajaran Asas Docker dan 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 Asas Docker dan DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Docker dan 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.

Lapisan Imej dan Pengoptimuman — ilustrasi 1

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:latest

Kelebihan 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 RUN menjadi satu untuk mengurangkan lapisan.
  • Bersihkan fail sementara dalam perintah RUN masing-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.

Percuma untuk bermula

Pelajari Asas Docker dan 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
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Lapisan Imej dan Pengoptimuman” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Docker dan 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 Asas Docker dan 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 Asas Docker dan 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 Asas Docker dan DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Docker dan 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 Asas Docker dan DevOps ini?

Ya. Setiap pelajaran Asas Docker dan 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

  1. Memahami Dockerfile
  2. Mencipta Imej Docker Tersuai
  3. Lapisan Imej dan Pengoptimuman
  4. Binaan Berbilang Peringkat dan Imej Lebih Kecil
← Kembali ke Asas Docker dan DevOps