如何缩小RHEL/Centos/Fedora Docker映像的大小

如何缩小RHEL/Centos/Fedora Docker映像的大小,docker,centos,redhat,fedora,Docker,Centos,Redhat,Fedora,红帽的底图非常小,RHEL 7.4的底图大约为196M。然而,它往往缺少我想要构建新形象的产品所需要的许多细节 当我在上面做一个“yum install Xxx”的时候,图像的大小会增加到+500M-800M 有没有办法减小映像的大小?是的,通过执行“yum clean all”可以显著减小Docker映像的大小 初始RHEL图像尺寸=196M Dockerfile-RHEL图像(+bc)=505M #构建命令 #docker build-t rhel7base:latest--build ar

红帽的底图非常小,RHEL 7.4的底图大约为196M。然而,它往往缺少我想要构建新形象的产品所需要的许多细节

当我在上面做一个“yum install Xxx”的时候,图像的大小会增加到+500M-800M


有没有办法减小映像的大小?

是的,通过执行“yum clean all”可以显著减小Docker映像的大小

初始RHEL图像尺寸=196M

Dockerfile-RHEL图像(+bc)=505M

#构建命令
#docker build-t rhel7base:latest--build arg REG_USER='''--build arg REG_PSWD=''--squash。
来自registry.access.redhat.com/rhel7/rhel:latest
标签维护器=“tim”
ARG REG_USER=none
ARG REG_PSWD=无
运行订阅管理器注册--用户名$REG\u用户--密码$REG\u PSWD--自动附加(&U)\
订阅管理器repos--启用rhel-server-rhscl-7-RPM&&\
yum安装-y bc
Dockerfile-RHEL图像(+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
#构建命令
#docker build-t rhel7base:latest--build arg REG_USER='''--build arg REG_PSWD=''--squash。
来自registry.access.redhat.com/rhel7/rhel:latest
标签维护器=“tim”
ARG REG_USER=none
ARG REG_PSWD=无
运行订阅管理器注册--用户名$REG\u用户--密码$REG\u PSWD--自动附加(&U)\
订阅管理器repos--启用rhel-server-rhscl-7-RPM&&\
yum安装-y bc&&\
百胜清洁所有&&\
rm-rf/var/cache/yum
注意:在最新版本的Docker中,--squash选项是一个实验性标志。它将分层文件系统压缩到一个新的层中

我在上找到了使用“yum clean all”的解决方案


“rm-rf/var/cache/yum”的添加来自“yum clean all”输出中的建议

除了TJA的答案,您还可以使用更小的CentOS基本映像,例如,存在一个Debian灯,它被称为Bitnami

对于CentOS,也许你可以使用

您还可以尝试使用2种工具减小图像的大小


绝对正确,甚至可以选择阿尔卑斯山之类的。最后,我怀疑百胜清洁所有产品也适用于这些产品。
# 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