Dockerfile瘦身

前言

之前用Dockerfile构建过一个redis镜像,833M,太大了,因此进行瘦身,传输和部署会更快。

优化完,251M。

修改后的Dockerfile

FROM centos:7.8.2003 as build

MAINTAINER xun "418728966@qq.com"

RUN yum install -y gcc gcc-c++ make vim && \
yum install -y centos-release-scl && \
yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && \
yum clean all && \
rm -rf /var/cache/yum/* && \
rm -f /redis-6.0.6.tar.gz

RUN ln -sf /opt/rh/devtoolset-9/root/usr/bin/gcc /usr/bin/gcc && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# RUN gcc -v

ADD lib/redis-6.0.6.tar.gz /

RUN cd /redis-6.0.6 && \
make -j6 && \
make install PREFIX=/usr/local/redis/ && \
rm -rf /redis-6.0.6/ && \
mkdir -p /usr/local/redis/{logs,data}

COPY redis6379.conf /usr/local/redis/bin/redis.conf

FROM centos:7.8.2003 

COPY --from=build /usr/local/redis /redis

ENV PATH $PATH:/redis/bin

WORKDIR /redis/bin

EXPOSE 6379

CMD ["redis-server", "/redis/bin/redis.conf"]
# 构建镜像
docker run -d -v /Users/xun/redis.conf:/redis/bin/redis.conf -p 6379:6379 --name redisStandAlone redis-base:v2 redis-server /redis/bin/redis.conf

 ~/redis-cluster  docker history redis-base:v2
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
faad17dec657        48 minutes ago      /bin/sh -c #(nop)  CMD ["redis-server" "/red…   0B
1aecff214291        48 minutes ago      /bin/sh -c #(nop)  EXPOSE 6379                  0B
8670cc6ded66        48 minutes ago      /bin/sh -c #(nop) WORKDIR /redis/bin            0B
15cf267557e3        48 minutes ago      /bin/sh -c #(nop)  ENV PATH=/usr/local/sbin:…   0B
039946cee4d3        48 minutes ago      /bin/sh -c #(nop) COPY dir:4bc9735407a7c1a37…   47.2MB
afb6fca791e0        6 months ago        /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>           6 months ago        /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>           6 months ago        /bin/sh -c #(nop) ADD file:72b194edf3abedf51…   203MB
 xun@xun15  ~/redis-cluster 

瘦身需要注意几点

  1. 合并Dockerfile语句:COPY、ADD、RUN都会创建新层,使用**&&**合并
  2. 使用多阶段构建,将层合并
  3. 使用DiDistroless移除容器中的所有累赘
  4. 使用alpine作为更小的基础镜像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值