docker-镜像的优化

以rhel7为基础镜像,构建一个运行nginx的镜像。

dockerfile如下:

docker-镜像的优化

build:

docker-镜像的优化

build之后我们可以看到很多个输出,因为运行了相应的命令,这里就不一一展示出来

接下来查看一下该镜像的大小

docker-镜像的优化

docker-镜像的优化

由上图可知,基础镜像的大小为140MB,而刚才生成的镜像的大小为295MB,足足多了155MB。

接下来,我们对该镜像进行一些优化,首先分析一下,哪些部分可以优化。

1.可以不输出

2.清空yum缓存

3.删除tar包

4.nginx关闭debug

5.将run命令整合起来,因为多一个命令,就多一层镜像

6.最重要的,可以利用编译好的nginx来生成这个镜像,即使用多阶段构建镜像,如果使用多阶段构建镜像,那么前4点可以忽略,因为使用多阶段构建镜像仅仅是拷取了nginx编译后的目录,但是注意debug需要关闭,因为如果debug不关闭的话,nginx编译后生成的目录会多几MB,从而影响下一阶段的构建镜像大小。

没有关闭debug时:

docker-镜像的优化

docker-镜像的优化

关闭debug后:仅仅比基础镜像多了1MB。

docker-镜像的优化

docker-镜像的优化