Docker telah menjadi sinonim dengan cepat dengan penyelesaian kontena aplikasi Walau bagaimanapun, saiz imej Docker sering menjadi salah satu dilema yang mudah dihadapi apabila menggunakan Docker. Jelas sekali bahawa walaupun banyak imej Docker mengandungi banyak komponen berguna, ia sering juga mengandungi banyak elemen yang tidak perlu yang mengambil banyak ruang cakera keras. Ini boleh menjadi masalah, terutamanya apabila anda perlu menggunakan sejumlah besar imej Docker secara serentak. Bagaimana untuk meminimumkan saiz imej Docker ini? Artikel ini akan memperkenalkan beberapa kaedah yang boleh membantu anda melangsingkan imej Docker anda.
Apabila anda membina imej Docker, imej asas adalah sangat penting. Ia mengandungi komponen utama imej Docker, jadi memilih imej asas yang betul boleh mengurangkan saiz imej Docker anda dengan ketara. Untuk mengurangkan imej Docker anda, anda harus cuba memilih imej asas yang lebih kecil.
Sebagai contoh, jika anda menulis aplikasi Python, lebih baik menggunakan Alpine Linux daripada Ubuntu kerana Alpine Linux hanya mengandungi pakej dan perpustakaan yang diperlukan, jadi ia jauh lebih kecil daripada Ubuntu.
Setiap arahan RUN dalam Dockerfile mencipta lapisan imej baharu dalam bekas. Ini bermakna setiap arahan RUN yang anda gunakan meningkatkan saiz imej. Oleh itu, adalah sangat penting untuk menggabungkan berbilang arahan ke dalam satu arahan RUN apabila boleh.
Berikut ialah contoh:
# 不推荐的写法: RUN apt-get update && apt-get install -y package1 package2 \ && apt-get clean && rm -rf /var/lib/apt/lists/* # 推荐的写法: RUN apt-get update \ && apt-get install -y package1 package2 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*
Apabila membina imej Docker, banyak fail yang tidak diperlukan mungkin disertakan. Ini mungkin termasuk cache pakej atau fail lain yang dijana secara perantaraan. Fail ini mengambil banyak ruang dalam imej, jadi mengalih keluarnya boleh mengurangkan saiz imej dengan ketara.
Berikut ialah beberapa fail yang mungkin menggunakan ruang:
Anda boleh mengalih keluarnya menggunakan:
RUN apt-get update \ && apt-get install -y package1 package2 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && rm -rf /var/cache/apt/archives/* \ && rm -rf /usr/share/doc/* \ && rm -rf /usr/share/man/* \ && rm -rf /usr/share/info/* \ && rm -rf /usr/share/locale/* \ && rm -rf /usr/share/gtk-doc/*
Kadangkala, anda mungkin menggunakan perpustakaan atau alat, tetapi anda sebenarnya tidak memerlukan semua cirinya. Dalam kes ini, menggunakan alternatif yang ringan ialah cara yang baik untuk mengurangkan saiz imej.
Sebagai contoh, jika anda perlu menjalankan aplikasi Java dalam bekas, Oracle JDK mungkin lebih besar sedikit daripada OpenJDK. Dalam kes ini, mungkin lebih baik menggunakan OpenJDK kerana ia sedikit lebih kecil daripada Oracle JDK.
Apabila membungkus aplikasi ke dalam imej Docker, mampatkan fail aplikasi supaya mereka menggunakan lebih sedikit ruang dalam imej. Apabila bekas Docker sedang berjalan, gunakan perintah "docker run" dan fail ini akan dinyahmampat secara automatik di dalam bekas.
Berikut ialah contoh:
# 将文件压缩并将其移动到容器中。 tar -czvf myapp.tar.gz /path/to/myapp mv myapp.tar.gz /docker/myapp/ # 在Dockerfile中使用ADD指令将文件解压并复制到容器中。 ADD myapp.tar.gz /app/
Ringkasnya, dengan memilih imej asas yang lebih kecil, menggabungkan berbilang arahan RUN menjadi satu arahan, memadamkan fail yang tidak berguna dan menggunakan lebih banyak penggantian kecil, sebagai serta memampatkan/menyahmampat imej, boleh mengurangkan saiz imej Docker dengan ketara. Melalui kaedah ini, anda boleh memastikan bahawa imej Docker anda hanya mengandungi fail dan komponen yang diperlukan, dengan itu mengurangkan saiz dan kerumitan penggunaan dan penskalaan kontena.
Atas ialah kandungan terperinci Ringkaskan beberapa kaedah untuk melangsingkan imej buruh pelabuhan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!