gpt4 book ai didi

docker - Dockerfile 中的命令数

转载 作者:IT老高 更新时间:2023-10-28 12:42:32 26 4
gpt4 key购买 nike

我注意到 Dockerfile 中的每一行都创建了一个单独的图像。创建的图像数量是否有限制?

我们是否应该尝试做一个 RUN cmd1 && cmd2 && cmd3 代替?

如果我们使用 Quay 这样的服务,这会有什么不同?

谢谢!

最佳答案

作为 Alister said ,如果您使用的是 AUFS 文件系统,则 Docker 镜像中的层数有上限。 在 Docker 0.7.2 版中,限制提高到 127 层 (changelog)。

由于这是底层联合文件系统的限制(在 AUFS 的情况下),使用 Quay 或其他私有(private)注册表不会改变结果。但您可以使用不同的文件系统。

当前的替代文件系统是使用devicemapper(见CLI docs)。这些其他文件系统可能对层数有不同的限制——我认为 devicemapper 没有上限。

没错,通过在一个 RUN 语句中运行多个命令,可以减少层数。

或者,如果你真的需要很多层来构建你的镜像,你可以构建一个镜像,直到它达到最大值,然后使用 docker export 创建一个镜像的非分层副本文件系统。然后 docker import 再次将其重新转换为图像,这次只有一层,然后继续构建。但是,您会以这种方式丢失历史记录。

关于docker - Dockerfile 中的命令数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com