Docker镜像的优化

本文介绍了如何优化Docker镜像,包括选择最精简的基础镜像、减少层数、清理中间产物、利用构建缓存和多阶段构建。以rhel7为基础,优化nginx源码安装镜像,通过多次优化,最终将镜像大小从276MB减至20多MB,并确保服务正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在使用docker镜像的时候会发现一些镜像运行的话会非常的大,占用系统资源,那么我们其实是可以通过优化来解决这样的问题的

镜像的优化准则:

  1. 选择最精简的基础镜像
  2. 减少镜像的层数
  3. 清理镜像构建的中间产物
  4. 注意优化网络请求
  5. 尽量去用构建缓存
  6. 使用多阶段构建镜像

那么接下来我们以为rhel7镜像nginx的源码安装为例来做优化
1.首先获得一个nginx的源码包

[root@server1 docker]# ls
Dockerfile  nginx-1.15.8.tar.gz  web  yum.repo	
[root@server1 docker]# 

2.编写Dockerfile文件

[root@server1 docker]# cat Dockerfile 
FROM rhel7
COPY yum.repo /etc/yum.repos.d/yum.repo
ADD nginx-1.15.8.tar.gz /mnt
WORKDIR /mnt/nginx-1.15.8
RUN rpmdb --rebuilddb && yum install -y gcc make zlib-devel pcre-devel
RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc
RUN ./configure --prefix=/usr/local/nginx
RUN make
RUN make install 
EXPOSE 80
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

3.构建镜像
在这里插入图片描述
在这里插入图片描述
[root@server1 docker]# docker images nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v1 af236e3138f9 About a minute ago 276MB
nginx latest 53f3fd8007f7 3 weeks ago 109MB

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值