Asas Docker dan DevOps · Pelajaran

Memanfaatkan Pencachean Binaan

Optimumkan masa binaan Docker dengan memahami dan menggunakan mekanisme cache binaan Docker secara berkesan.

Pelajaran 2 daripada 411 langkah

Memanfaatkan Pencachean Binaan ialah pelajaran Asas Docker dan DevOps percuma di CoddyKit. Ini ialah pelajaran 2 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.

Bina Lebih Pantas dengan Caching

Membina imej Docker boleh mengambil masa, terutamanya untuk aplikasi yang kompleks. Cache binaan Docker ialah ciri pintar yang membantu mempercepatkan proses dengan ketara!

Ciri ini berfungsi dengan menggunakan semula lapisan daripada binaan sebelumnya, jadi Docker tidak perlu membina semula semuanya dari awal setiap kali.

Memanfaatkan Pencachean Binaan — ilustrasi 1

Binaan Lapisan demi Lapisan

Apabila anda membina imej Docker menggunakan Dockerfile, Docker melaksanakan setiap arahan satu baris demi satu baris.

  • Setiap arahan, seperti FROM, RUN atau COPY, mencipta "lapisan" baharu dalam imej anda.
  • Lapisan ini disusun di atas satu sama lain untuk membentuk imej akhir.

Pemeriksaan Cache Docker

Sebelum melaksanakan sesuatu arahan, Docker menyemak sama ada ia pernah membina lapisan yang sama tepat sebelum ini. Docker membandingkan:

  • Arahan itu sendiri (contohnya, RUN apt update).
  • "Konteks" untuk arahan tertentu (contohnya, fail yang disalin menggunakan COPY).

Jika lapisan yang sepadan ditemui, Docker menggunakannya semula daripada cache dan bukannya menjalankan arahan itu sekali lagi.

Membatalkan Cache

Cache sememangnya berguna, tetapi ia tidak sentiasa digunakan. Jika Docker mengesan sebarang perubahan dalam arahan atau konteksnya, cache untuk lapisan tersebut dan semua lapisan selepasnya akan dibatalkan.

Ini bermakna Docker akan membina semula bermula dari titik tersebut dan seterusnya, tanpa menggunakan mana-mana lapisan cache di bawahnya.

Susunan Arahan yang Pintar

Untuk memaksimumkan penggunaan cache, susun arahan Dockerfile anda daripada yang paling kurang berkemungkinan berubah kepada yang paling berkemungkinan berubah.

  • Kebergantungan stabil dahulu: Pasang pakej sistem atau kebergantungan aplikasi yang jarang berubah.
  • Kod aplikasi terakhir: Salin kod sumber aplikasi anda, yang kerap berubah, selewat yang mungkin.

Susunan untuk Mendapatkan Padanan Cache

Mari lihat satu contoh. Dengan meletakkan arahan RUN pip install (yang biasanya kurang kerap berubah) sebelum COPY . . (yang berubah setiap kali kod dikemas kini), Docker boleh menggunakan semula lapisan kebergantungan.

Bayangkan requirements.txt mengandungi flask dan gunicorn, manakala app.py ialah aplikasi utama anda.

Dockerfile:

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]

Jika hanya app.py berubah, Docker hanya membina semula lapisan COPY dan CMD yang terakhir, sekali gus menjimatkan masa!

Penyalinan Terpilih dengan .dockerignore

Apabila anda menggunakan COPY . ., Docker menyemak setiap fail dalam konteks binaan untuk mengesan perubahan. Malah fail kecil yang tidak berkaitan (seperti folder .git atau data ujian setempat) boleh membatalkan cache.

Gunakan fail .dockerignore untuk mengecualikan fail dan direktori yang tidak diperlukan daripada konteks binaan anda. Tindakan ini menghalangnya daripada mencetuskan pembatalan cache.

.dockerignore dalam Tindakan

Letakkan fail bernama .dockerignore di akar konteks binaan anda (di sebelah Dockerfile anda).

Contoh .dockerignore:

.git
.venv
__pycache__
*.log
node_modules

Kini, apabila anda menggunakan COPY . ., Docker mengabaikan fail ini, lalu menghasilkan padanan cache yang lebih boleh dipercayai!

Bila Perlu Melangkau Cache

Adakalanya, anda mungkin mahu memastikan semuanya dibina dari awal dan mengabaikan cache sepenuhnya. Ini berguna untuk penyahpepijatan atau bagi memastikan anda memperoleh versi kebergantungan yang benar-benar terkini.

Anda boleh memaksa Docker membina semula tanpa menggunakan cache dengan menambahkan bendera --no-cache pada arahan binaan anda:

docker build --no-cache -t my-app:latest .

Semakan Pengoptimuman Cache

Anda sedang membina imej Docker untuk aplikasi Node.js. Dockerfile anda pada masa ini kelihatan seperti ini:

FROM node:16-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]

Perubahan manakah yang paling baik untuk mengoptimumkan Dockerfile ini bagi caching binaan?

Ulang Kaji: Kuasai Cache!

Syabas! Anda telah mempelajari cara memanfaatkan cache binaan Docker untuk membina imej dengan lebih pantas.

  • Docker membina imej lapisan demi lapisan dan menggunakan semula lapisan cache apabila boleh.
  • Perubahan pada sesuatu arahan atau konteksnya membatalkan cache bermula dari titik tersebut.
  • Optimumkan binaan dengan menyusun arahan daripada yang paling kurang berkemungkinan berubah kepada yang paling berkemungkinan berubah.
  • Gunakan .dockerignore untuk mengecualikan fail yang tidak berkaitan daripada konteks binaan.
  • Gunakan --no-cache untuk memaksa binaan baharu apabila diperlukan.

Caching yang cekap menghasilkan kitaran pembangunan yang lebih pantas dan pelaksanaan yang lebih tangkas!

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 “Memanfaatkan Pencachean Binaan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Docker dan DevOps, termasuk “Memanfaatkan Pencachean Binaan”, 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 “Memanfaatkan Pencachean Binaan”?

Optimumkan masa binaan Docker dengan memahami dan menggunakan mekanisme cache binaan Docker secara berkesan. 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 2 daripada 4.

Berapa lamakah pelajaran “Memanfaatkan Pencachean Binaan” 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. Binaan Berbilang Peringkat untuk Kecekapan
  2. Memanfaatkan Pencachean Binaan
  3. Amalan Terbaik Keselamatan Dockerfile
  4. Meminimumkan Saiz Imej dengan Asas Slim dan Distroless
← Kembali ke Asas Docker dan DevOps