如何减lessRHEL / Centos / Fedora Docker镜像的大小
红帽的基本镜像非常小,对于RHEL 7.4,大约为196M。 然而,它往往缺less我想要构build新图像的产品所需的大量零散件。
当我在它上面做一个“yum install xxx”的时候,图像大小会被吹到+ 500M-800M。
有没有办法缩小图像的大小?
是的,通过做一个“干净的所有”可以大大减lessdocker的图像大小,
初始RHEL图像大小= 196M
Dockerfile – RHEL Image(+ bc)= 505M
# Build command # docker build -t rhel7base:latest --build-arg REG_USER='<redhat_developer_user>' --build-arg REG_PSWD='<password>' --squash . FROM registry.access.redhat.com/rhel7/rhel:latest LABEL maintainer="tim" ARG REG_USER=none ARG REG_PSWD=none RUN subscription-manager register --username $REG_USER --password $REG_PSWD --auto-attach && \ subscription-manager repos --enable rhel-server-rhscl-7-rpms && \ yum install -y bc
Dockerfile – RHEL Image(+ bc)用“yum clean all”= 207M保存了298M
# Build command # docker build -t rhel7base:latest --build-arg REG_USER='<redhat_developer_user>' --build-arg REG_PSWD='<password>' --squash . FROM registry.access.redhat.com/rhel7/rhel:latest LABEL maintainer="tim" ARG REG_USER=none ARG REG_PSWD=none RUN subscription-manager register --username $REG_USER --password $REG_PSWD --auto-attach && \ subscription-manager repos --enable rhel-server-rhscl-7-rpms && \ yum install -y bc && \ yum clean all && \ rm -rf /var/cache/yum
注意:–squash选项是最新版本的Docker中的一个实验性标志。 它将分层文件系统压缩成一个新层https://blog.docker.com/2017/01/whats-new-in-docker-1-13/
我find了使用“yum clean all”的解决schemehttps://medium.com/@vaceletm/docker-layers-cost-b28cb13cb627
“rm -rf / var / cache / yum”的join来自“yum clean all”输出中的build议,
除了TJA的回答外,你还可以使用一个较小的CentOS基础镜像,例如Debian光源存在,这就是所谓的Bitnami
https://hub.docker.com/r/bitnami/minideb-extras/
对于CentOS,也许你可以使用
https://hub.docker.com/r/blalor/centos/
您还可以尝试使用2个工具缩小图像的大小
https://github.com/mvanholsteijn/strip-docker-image
和