docker镜像优化:dockerfile构建nginx / 缓存构建 / 减少镜像层数 / 清理镜像构建的中间产物 / 多阶段构建/ 选择最精简的基础镜像

######1.镜像优化的思路######

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

######2.构建nginx######

###1.删除多余镜像###

[root@server1 ~]# docker rmi busybox:v1 busybox:v2 busybox:v3 busybox:v4
    ##docker rmi 可以删除本地一个或多少镜像

###2.导入镜像###

###3.下载安装包###

(安装包必须和dockerfile文件在同一个目录下,才能检索到)

###4.编辑dockerfile文件,创建镜像###

[root@server1 docker]# vim Dockerfile
FROM rhel7
COPY dvd.repo /etc/yum.repos.d/dvd.repo
ADD nginx-1.15.8.tar.gz /mnt
EXPOSE 80   ##指定端口
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
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

(我们自己构建的镜像比官方给出的镜像多了167MB,有减小优化的空间)

###5.运行容器###

(nginx服务的80端口开启)

###6.查看镜像详细信息###

[root@server1 docker]# docker inspect nginx:v1   ##获取容器/镜像的元数据
     ##-f :指定返回值的模板文件
     ##-s :显示总的文件大小
     ##--type :为指定类型返回JSON

 

######3.利用缓存构建#######

缓存并不能减小镜像大小,但可以加快构建速度

###1.编辑dockerfile文件,创建镜像###

[root@server1 docker]# vim Dockerfile
FROM rhel7
COPY dvd.repo /etc/yum.repos.d/dvd.repo
ADD nginx-1.15.8.tar.gz /mnt
EXPOSE 80
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
VOLUME ["/usr/local/nginx/html"]   ##指定数据卷
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

(前面的10条命令都是用缓存创建的,只添加了11行,但11行和12行都重新构建了)

###2.查看镜像详细信息###

[root@server1 docker]# docker inspect nginx:v2

(数据卷有了存放目录)

###3.对比镜像大小###

(v1和v2镜像大小一样)

###4.运行容器,查看容器的数据卷###

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值