正如Alister所说,如果您使用AUFS文件系统,则Docker映像中的层数是有上限的。
在Docker 0.7.2版本中,限制增加到了127层(
changelog)。
由于这是对底层联合文件系统的限制(对于AUFS),因此使用Quay或其他私有注册表不会改变结果。但是您可以使用其他文件系统。
当前将使用替代文件系统
devicemapper(请参阅CLIdocs)。这些其他文件系统在层数上可能有不同的限制-我认为devicemapper没有上限。
没错,通过在单个RUN语句中运行多个命令,可以减少层数。
或者,如果您确实需要很多层来构建映像,则可以构建映像,直到达到最大值为止,然后使用它
dockerexport来创建映像文件系统的未分层副本。然后
dockerimport再次将其重新转换为图像,这次只有一层,然后继续构建。您会以这种方式失去历史。



