docker build 出的image为何这么大?

发布于 2022-09-05 22:34:03 字数 687 浏览 30 评论 0

Dockerfile

FROM centos:centos7.4.1708

RUN cd /etc/yum.repos.d/ && curl -sO http://mirrors.163.com/.help/CentOS7-Base-163.repo &&    mv ./CentOS-Base.repo ./CentOS-Base.repo.backup && mv ./CentOS7-Base-163.repo CentOS-Base.repo && yum clean all && yum makecache &&    yum -y install openssh openssh-server && echo 123456 | passwd --stdin root

run build

docker build -t z/centos7.4:ssh .
docker images

# 结果
z/centos7.4          654MB
centos7.4.1708       197MB

请问,为什么更新了yum源,安装了ssh,就从197M变654M这么大?怎么减小体积?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

归途 2022-09-12 22:34:03

这是因为yum源的缓存本身就比较大,而docker在这里不只会保存yum源,还会像git/svn那样保存版本信息,你在Dockerfile中的用到的指令越多,版本库也就越大;而docker只是一个容器,不是虚拟机,所以多数情况下,只是做为运行环境,而不是开发环境,所以在安装完软件后,都会把源、以及编译时才需要依赖包删除,以减小体积;大多数情况下,centos会比ubuntu大一些,但少说也要大几十M,现在有传言,docker官方要用alpine代替ubuntu做为默认的镜像,因为一个裸的alpine只有5M左右,相比centos和ubuntu等,体积小太多了,建议你看看一些官方的image tag,好多都出了alpine版本,比如php,https://hub.docker.com/_/php/ ,你可以看下官方的Dockerfile,也是通过安装完相关软件后,删除源与不需要的依赖包来最大程度减小体积的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文