2017-09-07 26 views
0

来自Red Hat的基本映像非常小,对于RHEL 7.4,大小为196M。然而,它往往缺少我想要构建新图像的产品所需的大量零散件。如何减小RHEL/CentOS/Fedora Docker的大小图像

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

有没有办法缩小图像大小?

回答

2

是泊坞图像尺寸可以通过执行一个 “荫清洁所有”

初始RHEL图像大小= 196M

Dockerfile显着地减少 - RHEL图片(+ 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图片(+ BC)与 “荫清洁所有”= 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/

我发现用“荫清洁所有”的解决方案在https://medium.com/@vaceletm/docker-layers-cost-b28cb13cb627

增设了“室射频的/ var /缓存/百胜”来自在“荫清洁所有”

0

除了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

+0

绝对减少你的图像的大小真实的,甚至选择像阿尔派这样的东西。在一天结束的时候,我怀疑yum干净的一切都适用于那些。 – TJA