怎样压缩Docker 镜像的大小-阿里云开发者社区

开发者社区> 开发与运维> 正文

怎样压缩Docker 镜像的大小

简介: 容器的便捷在于可以很快的搭建基础软件,但是如果你有2G的镜像还要常常pull 和push,还是有些麻烦。我们注意到Docker官方的很多镜像都是使用的Alpine版本的linux, 和我们常见的Ubuntu, Debian, Centos不一样。

容器的便捷在于可以很快的搭建基础软件,但是如果你有2G的镜像还要常常pull 和push,还是有些麻烦。我们注意到Docker官方的很多镜像都是使用的Alpine版本的linux, 和我们常见的Ubuntu, Debian, Centos不一样。
Alpine Linux 是一个社区开发的面向安全应用的轻量级Linux发行版, 适合用来做Docker镜像、路由器、防火墙、VPNs、VoIP 盒子 以及服务器的操作系统。
Alpine 能够使得镜像变得非常小,比如 python:2.7-alpine 镜像 19MB 而普通python:2.7 image 是 260MB。
裁剪步骤如下:

FROM alpine

第一步是修改Dockerfile里的基础镜像
FROM ubuntu => FROM alpine
FROM python:2.7 => FROM python:2.7-alpine
FROM ruby:2.3 => FROM ruby:2.3-alpine

把 APT 或者 YUM 变成APK

使用alpine最大的不同就是安装包的方式不一样
比如RUN apt-get update && apt-get install <package> 可以换成
RUN apk add --no-cache <package>

apk –no-cache

这个参数将不在本地存储安装包

apk –virtual and del 先安装再删除

比如
'''
RUN apk add --no-cache --virtual .build-deps
gcc
freetype-dev
musl-dev
RUN pip install --no-cache-dir <packages_that_require_gcc...>
RUN apk del .build-deps
'''

怎么进入Alpine的命令界面?

Alpine默认不带bash,所以:
docker run -ti my_image bash
docker run -ti my_image sh

总结

通过使用Alpine, 我的镜像缩减到原来的1/3,现在分享给你,希望你也能成功瘦身!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章