怎样压缩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,现在分享给你,希望你也能成功瘦身!

目录
相关文章
|
8月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
518 100
|
8月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
508 99
|
8月前
|
缓存 Docker 容器
优化Docker镜像大小的五个实用技巧
优化Docker镜像大小的五个实用技巧
756 98
|
8月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
Docker 容器 Perl
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
2698 32
|
7月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
784 6
|
10月前
|
Docker 容器 应用服务中间件
Docker 客户端是如何拉取镜像的?
Docker客户端拉取镜像的过程遵循Docker Registry HTTP API V2规范,主要分为解析镜像名、鉴权、获取Manifest、拉取Layers及本地合并五个步骤。它与Docker Hub、Harbor等仓库通信,确保镜像正确下载和构建。
1509 59
|
8月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
341 8
|
9月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
552 16
|
12月前
|
缓存 Shell 网络安全
将应用程序打包成Docker镜像时可能遇到哪些问题?
将应用程序打包成Docker镜像时可能遇到哪些问题?
1039 77

热门文章

最新文章