

推荐一个极其轻量级的 Docker 基础镜像,大小 2MB
source link: https://developer.51cto.com/article/708736.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.


你好,我是征哥,提到轻量级的 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 提供了一个超级最小的镜像,当你使用它作为镜像的基础时,它不会创建额外的层。更少的层等于更快的下载和上传。更快的工作流意味着对开发人员的反馈更快,花费的 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。如果觉得有帮助,还请点赞、转发、在看,感谢支持。
Recommend
-
31
-
10
下面分享9个功能强大的JavaScript技巧。 1.全部替换 我们知道string.replace()函数仅替换第一次出现的情况。您可以通过在正则表达式的末尾添加/g来替换所有出现的内容。 v...
-
8
AirTag或许展现了平凡无趣,但极其实用的AR未来_VR陀螺 AirTag或许展现了平凡无趣,但极其实用的AR未来 发布时间:2021-04-23 09:45 | 标签: AirTag...
-
9
案例丨这家品牌以极其克制的私域打法跑赢了大部分同行!...
-
9
极其简单,加速Github Release 下载 发表于...
-
5
原创丨目标中国:美国用心极其险恶! Original...
-
9
Debian 侵犯了 Rust 的商标权,这将导致一个极其严重的后果 整理 | 彭慧中 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 近日,Debian Rust 维护者发布了一封《Debian错误报告记录》的邮件,...
-
7
打算做个网站, 需要画个极其潦草的草图告诉 UI, 一般用什么工具比较好? V2EX = way to explore V2EX 是一个关于分享和探索的地方 Sponsored by
-
9
V2EX › 生活 四十岁的我极其羡慕二十岁的自己的身体
-
11
来源:见实 不少人讨论当下求职较难,岗位比过去减少。如公开信息显示,2023 年我国高校毕业生人数预计将达到 1158 万人,创历史新高,同时伴随的声...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK