dockerfile的优化

  1. 主要把run命令进行组合,都写到一行:

    合并dockerfile中可合并的指令,减少最终生成镜像的层数。

    因为docker镜像制作是一层一层构建的,一条语句就会创建一个新层。层数越多,体积越大。所以减少语句即会减小镜像体积,可以用 “&&” 将多条命令连接起来

  2. 清除缓存和临时文件:
    在镜像构建过程中,可能会适用apt-get或yum等方式进行包的安装,在完成后系统会残留一些不必要的文件,或者适用源代码进行编译某些应用时,源代码文件夹将会存放在镜像中,在镜像构建的最后步骤,可以将这些不必要的文件进行删除。

  3. 镜像服务化:
    当有多个服务时,分开多个镜像去运行这些服务,各司其职,例如在同一个镜像中打包了Apache httpd、MySQL、PHP,这无疑造成该镜像耦合性太差且体积臃肿。建议采用不同的镜像去托管不同的应用。

  4. 删除构建目录额外的文件
    在构建镜像时将会上传构建文件夹中的所有文件,但有时不是全部的文件都是构建所需的,可以通过.dockerignore文件进行过滤,这将提高构建的速度及镜像的大小。

  5. 优化网络请求
    在构建镜像过程中,可能有指令需要使用网络去实现下载、安装等操作,由于网络的不确定性,可能会造成构建过程较久,而且构建的时间不一等问题,建议采用本地化引用网络资源来解决问题,例如Centos使用yum进行软件包的管理时,可以通过Nexus进行本地代理,从而减少网络请求的问题。

你可能感兴趣的:(docker)