如何减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

https://github.com/docker-slim/docker-slim