我正在尝试在docker ( docker -in-docker,dind)中构建一个docker镜像。映像非常大,无法构建,并出现错误no space left on device。
设置:我使用docker-in-docker配置在teamcity代理docker镜像上运行此设置。
我的主机需要更多内存还是更多磁盘空间?docker- in -docker是在内存中构建还是在磁盘上构建?
发布于 2020-07-14 12:39:46
它使用磁盘。
在这篇article中详细解释了docker- in -docker的工作原理和原因。
我最初问这个问题时考虑到了Teamcity的代理,但我想推广这个问题。这似乎是行业标准,实际上从来没有运行过docker-in-docker,因为它会导致数据损坏,并且大多数用例都可以通过docker-to-docker解决方案来解决(如下所述)。尽管如此,在一些CI文档中,即使不是真正的docker- in -docker解决方案,几乎- docker-in-docker实现仍然被称为docker-in-docker。
docker到docker的解决方法通常是将主机docker守护进程以卷装载的形式公开给容器,即docker run -v /var/run/docker.sock:/var/run/docker.sock ...,如果您将该守护进程公开给一个容器,或者将dind镜像暴露给另一个容器,在这两种情况下,docker引擎都是在主机级别运行,或者作为docker的第一个级别的容器运行,这意味着它使用磁盘。
希望这能澄清。
https://stackoverflow.com/questions/62651487
复制相似问题