会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 推荐一个极其轻量级的 Docker 基础镜像,大小 2MB!

推荐一个极其轻量级的 Docker 基础镜像,大小 2MB

时间:2025-11-05 01:42:10 来源:益强数据堂 作者:IT科技类资讯 阅读:784次

你好,推荐我是个极征哥,提到轻量级的其轻 Docker 镜像,很多人都知道 Alpine,量级因为它确实很轻,础镜只有 5.57MB,像大小使用它作为基础镜像的推荐 Python 也就 44MB。

但它依然不是个极最轻量级的,今天要说的其轻是 Google 的 distroless 基础镜像,distroless 镜像 gcr.io/distroless/static-debian11 只有 2 MB,量级是础镜 Alpine 的一半,你可以在这里https://github.com/GoogleContainerTools/distroless 找到它,像大小12.7k 的推荐 Star。

distroless 映像仅包含应用程序及其运行时依赖项,个极它不包含包管理器、其轻shell、Linux 发行版的任何其他程序。这样的好处就是轻,推送,拉取的源码下载速度都非常快,也更安全。

什么情况应该使用 distroless?

现在基本上每个程序员都有自己的持续集成(CI)和持续发布( CD) 工作流,比如说,我部署自己的应用,为了减少在服务器上的配置工作,我就把应用放在 Docker,然后服务器拉取运行就可以。但有时构建、推送和拉取镜像需要很长时间,为了减少拉取,于是我不得不把 Docker 容器映射到服务器的磁盘,然后再上传修改的代码,在 Docker 容器内安装依赖,活活把 Docker 用成了虚拟机,最后换服务器的时候,又是一堆事情重复做一遍。

distroless 镜像更轻,这意味着更快的拉取和推送。Docker 提供了一个超级最小的镜像,当你使用它作为镜像的基础时,它不会创建额外的WordPress模板层。更少的层等于更快的下载和上传。更快的工作流意味着对开发人员的反馈更快,花费的 CI 分钟数更少。

安全性也是一个重要问题,如果不打算使用 sudo、ping、ls 之类的工具,容器中也不应该使用它们,比如说你的应用很容易受到攻击,但是你应用运行的环境没有 ls 或 sudo 这样的工具,黑客也很难进行信息收集和命令执行。

这里有一个实验[1],分别用常规的容器和 distroless 部署一个有漏洞的 flask app。

常规的容器部署的可以进行命令执行:

而 distroless 部署的就没有:

原因是 distroless 没有 ls 命令:

也就是说应始终避免使用那些帮助黑客收集更多信息或执行权限提升的服务器托管工具。

因此,如果注重推拉取镜像的速度和容器的安全性,或者用于生产环境,可以用 distroless。

什么情况应该不使用 distroless?

如果你想在容器内调试你程序,你需要 shell 和其他一些已安装的工具,但 distroless 没有这些,这时使用普通镜像进行开发。

distroless 用于 Python 应用的例子

Dockerfile:

FROM python:3-slim AS build-env

COPY . /app

WORKDIR /app

FROM gcr.io/distroless/python3

COPY --from=build-env /app /app

WORKDIR /app

CMD ["hello.py", "/etc"]

最后的话

不过,distroless 需要开发人员付出更大的努力,不过只要你的 app 被更多的拉取,那节省出来的时间以及带来的安全性,这都是值得的,让我们持续关注 distroless。如果觉得有帮助,还请点赞、转发、在看,感谢支持。

(责任编辑:数据库)

推荐内容
  • 飞利浦MP3SA0283音质如何?(揭秘飞利浦MP3SA0283的音质表现及特点)
  • SQL ServerCoalesce的大量使用的具体描述
  • SQL Server获取表的容量很简单!
  • SQL Server Order by在union子句不可直接使用的原因
  • 苹果电脑清灰教程(保护苹果电脑性能,拆解清灰是必须的)
  • 多国执法部门联合逮捕了150名从事非法商品交易的嫌犯