一、實(shí)驗(yàn)背景
【MySQL&docker】基于CentOS7.5 編譯制作MySQL5.7.28鏡像
http://www.itdecent.cn/p/71fd79b69a6b

用MySQL源碼編譯的docker鏡像,體積過大,直奔3G了,你也不清楚,這點(diǎn)編譯參數(shù)打出的體積怎么就這么大!
想到MySQL官方提供一種二進(jìn)制安裝包,只有600M左右,加上基礎(chǔ)鏡像和一些依賴包,打成鏡像的話,也就1G大一點(diǎn)。

二、下載MySQL二進(jìn)制安裝包
官網(wǎng)地址:https://dev.mysql.com/downloads/mysql/5.7.html
# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

# tar -zxf??mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
# cd??mysql-5.7.28-linux-glibc2.12-x86_64??

看來失算了,600M是壓縮包的大小,解壓后就2.7G了!


MySQL 官方鏡像中二進(jìn)制文件個庫文件的體積大小,我們以 MySQL 5.7.27 為例:
# docker run -it --rm mysql:5.7.27 bash
# du -sh /usr/bin/mysql*
# du -sh /usr/sbin/mysql*
# du -sh /usr/lib/mysql/

現(xiàn)在知道為什么MySQL官方鏡像為什么小了,因?yàn)橹话惭b必須的一下二進(jìn)制文件和庫文件,而編譯安裝和二進(jìn)制包是將所有的二進(jìn)制文件和庫文件都包括了!
如果想縮小構(gòu)建的編譯的鏡像體積,就需要清楚怎么取舍二進(jìn)制問文件和庫文件了!
官方Dockerfile:
dockerfile:https://github.com/docker-library/mysql/blob/master/5.7/Dockerfile
docker-entrypoint.sh:https://github.com/docker-library/mysql/blob/master/5.7/docker-entrypoint.sh
三、參考
MySQL5.7 Dockerfile
https://www.cnblogs.com/wshenjin/p/10100949.html
簡仿MySQL官方容器dockerfile
https://blog.csdn.net/weixin_33981932/article/details/92600770