一、实验背景
【MySQL&docker】基于CentOS7.5 编译制作MySQL5.7.28镜像
https://www.jianshu.com/p/71fd79b69a6b
用MySQL源码编译的docker镜像,体积过大,直奔3G了,你也不清楚,这点编译参数打出的体积怎么就这么大!
想到MySQL官方提供一种二进制安装包,只有600M左右,加上基础镜像和一些依赖包,打成镜像的话,也就1G大一点。
二、下载MySQL二进制安装包
官网地址: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 官方镜像中二进制文件个库文件的体积大小,我们以 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/
现在知道为什么MySQL官方镜像为什么小了,因为只安装必须的一下二进制文件和库文件,而编译安装和二进制包是将所有的二进制文件和库文件都包括了!
如果想缩小构建的编译的镜像体积,就需要清楚怎么取舍二进制问文件和库文件了!
官方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