Dalam proses membuat imej, kita harus memberi perhatian kepada beberapa perkara: 1 Sistem fail ialah UnionFs, dan setiap RUN dalam Dockerfile akan menghasilkan lapisan. Jadi kita perlu membersihkan data yang dihasilkan selepas setiap RUN. Kerana hasil yang dijana (saiz 3G) ialah superposisi linear bagi saiz setiap lapisan. 2. Mengapakah imej rasmi biasanya terlalu kecil? Mari gunakan mysql:5.6 sebagai rujukan untuk menganalisis:
JALANKAN kemas kini apt-get && apt-get install -y perl --no-install-recommends && rm -rf /var/lib/apt/lists/* Selepas mengemas kini binaan, padamkannya fail pakej cache apt. Secara umumnya, folder ini akan menduduki kira-kira 100M bergantung pada keadaan.
JALANKAN { ...&& apt-get update && apt-get install -y mysql-server="${MYSQL_VERSION}" && rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql Selepas memasang db, padamkan fail pakej cache seperti biasa. Memadam /var/lib/mysql boleh mengosongkan pangkalan data sampel.
Mari kita lihat pakej vim yang paling biasa digunakan dalam hub.docker.com Kami mendapati bahawa imej haron/vim ialah 300M dan menggunakan scratch sebagai imej asas.
Selepas carian kasar di hub.docker.com, saya tidak menemui imej mysql berdasarkan centos. Secara peribadi, saya menganggarkan bahawa masalah itu disebabkan oleh pakej cache yang tidak dipadamkan.
Bagi isu saiz imej asas yang disebut oleh saudara @ShawnTaoo, saya juga melakukan penyiasatan berikut: centos:latest 190+MB, debian:jessie: 130+MB, ubuntu:latest 180+MB
Anda boleh menyemak fail docker bagi imej rasmi mysql. Imej asas sepatutnya berbeza. Secara umum, banyak imej asas rasmi adalah sangat kecil. Contohnya scratch, tetapi jika anda menggunakan ubuntu atau sesuatu, ia akan menjadi kira-kira 180M (terima kasih kepada @ imdjh kerana membetulkan saya).
Dalam proses membuat imej, kita harus memberi perhatian kepada beberapa perkara:
1 Sistem fail ialah UnionFs, dan setiap RUN dalam Dockerfile akan menghasilkan lapisan. Jadi kita perlu membersihkan data yang dihasilkan selepas setiap RUN. Kerana hasil yang dijana (saiz 3G) ialah superposisi linear bagi saiz setiap lapisan.
2. Mengapakah imej rasmi biasanya terlalu kecil? Mari gunakan mysql:5.6 sebagai rujukan untuk menganalisis:
Mari kita lihat pakej vim yang paling biasa digunakan dalam hub.docker.com Kami mendapati bahawa imej haron/vim ialah 300M dan menggunakan scratch sebagai imej asas.
Selepas carian kasar di hub.docker.com, saya tidak menemui imej mysql berdasarkan centos. Secara peribadi, saya menganggarkan bahawa masalah itu disebabkan oleh pakej cache yang tidak dipadamkan.
Bagi isu saiz imej asas yang disebut oleh saudara @ShawnTaoo, saya juga melakukan penyiasatan berikut: centos:latest 190+MB, debian:jessie: 130+MB, ubuntu:latest 180+MB
Rujukan:
analisis cermin mysql
analisis haron/vim
Analisis imej asas Centos
Analisis imej asas Ubuntu
Tidak hairanlah pakej pemasangan saya hanya meningkat 3G selepas memasang lampu Ternyata satu mysql menambah 1G
Anda belum bermula lagi
Adalah disyorkan untuk menghabiskan tutorial pengenalan sebelum bermain
Komit tanpa memadam fail sementara
Anda boleh menyemak fail docker bagi imej rasmi mysql. Imej asas sepatutnya berbeza. Secara umum, banyak imej asas rasmi adalah sangat kecil. Contohnya
scratch
, tetapi jika anda menggunakan ubuntu atau sesuatu, ia akan menjadi kira-kira 180M (terima kasih kepada @imdjh kerana membetulkan saya).
Jika anda boleh membuat Dockerfile anda awam, semua orang boleh membantu anda melihat. Masalah utama ialah penulisan Dockerfile