Docker:(七)dockerfile优化小技巧

本文探讨了即使在存储成本降低的今天,为何仍需要优化Docker镜像,包括减少存储开销、提升部署速度和增强安全性。文章介绍了制作小镜像的原则,如选择最小基础镜像和精简文件,并详细阐述了Dockerfile的优化方法,如指定挂载点、减少RUN指令、多阶段构建以及使用轻量级Linux发行版。
摘要由CSDN通过智能技术生成

目录

一:镜像优化概述

1.1为什么在存储如此便宜的今天我们仍然需要对Docker镜像进行优化?

1.2小镜像的优点

1.3小镜像的制作原则

二:dockerfile构建容器指定挂载点

三:镜像优化

3.1优化前示例

3.2优化方案一

不需要输出的指令丢入/dev/null (需要确定命令执行的是正确的)

3.3优化方案二

减少RUN构建

3.4优化方案三

多阶段构建(使用FROM命令生成多个镜像,将指定的镜像做为其他镜像的基础镜像环境来构建)

3.5优化方案四

使用更为轻量级的linux发行版本

一:镜像优化概述

1.1为什么在存储如此便宜的今天我们仍然需要对Docker镜像进行优化?

因为docker镜像太大,带来了以下几个问题:
存储开销
会导致用户服务器的磁盘空间很紧张

部署时间
这块影响真的很大,交付件zip包太大,导致用户部署该产品时,花费的时间变长,客户现场中反馈部署时间超过1.5小时,这严重影响用户的体验,降低满意度

性能不稳定
如果客户的服务器规格不够(特别是磁盘读写性能不够),会增大部署失败的概率。

1.2小镜像的优点

加速构建/部署。虽然存储资源较为廉价,但是网络IO是有限的,在带宽有限的情况下,部署一个1G的镜像和10M的镜像带来的时间差距可能就是分钟级和秒级的差距。特别是在出现故障,服务被调度到其他节点时,这个时间尤为宝贵。
提高安全性,减少攻击面积。越小的镜像表示无用的程序越少,可以大大的减少被攻击的目标。
减少存储开销。

1.3小镜像的制作原则

选用最小的基础镜像
减少层,去除非必要的文件
在实际制作镜像的过程中,一味的合并层不可取,需要学会充分的利用Docker的缓存机制,提取公共层,加速构建。
依赖文件和实际的代码文件单独分层
团队/公司采用公共的基础镜像等


二:dockerfile构建容器指定挂载点

dockfike构建nginx镜像

mkdir nginx
cd nginx
vim Dockerfile

FROM centos:7
MAINTAINER THIS IS NGINX IMAGE
RUN yum  -y update
RUN yum install -y pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.2.tar.gz /usr/local/src
WORKDIR /usr/local/src
WORkDIR nginx-1.12.2
VOLUME ["/usr/local/nginx/html"]                #在容器中创建一个挂载点
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
CMD nginx                   #不加[]是shell写法

docker build -f Dockerfile -t nginx:v1  . #构建镜像
docker images
docker run -d -P nginx:v1                  #启动容器
docker ps -a
docker inspect               #查看容器信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值