为什么docker上自己创建的mysql镜像特别大
巴扎黑
巴扎黑 2017-04-24 09:10:48
0
5
1382

新手刚入门,自己学着创建系统镜像和各种应用的镜像

我先自己制作了一个centos67的镜像,然后基于centos67装了vim,再docker commit 保存为centos67vim
然后再基于centos67vim上 编译安装了mysql5.6再commit保存为 mysql56,可是发现容量就达1.591GB了

我再docker pull mysql 发现为什么官方提供的只有360.3

多谢各位大大帮忙解答!!

巴扎黑
巴扎黑

membalas semua(5)
洪涛

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


Rujukan:

  1. analisis cermin mysql

  2. analisis haron/vim

  3. Analisis imej asas Centos

  4. 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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan