docker-in-docker 使用内存还是磁盘?
Does docker-in-docker use memory or disk?
我正在尝试在 docker 中构建一个 docker 图像(docker-in-docker,dind)。图像非常大,构建失败并出现错误 no space left on device
。
设置:
我在 teamcity 代理 docker 图像上 运行 这个,具有 docker-in-docker 配置
我的主机是否需要更多内存或更多磁盘space? docker-in-docker 是在内存中构建还是在磁盘上构建?
它使用磁盘。
关于 docker-in-docker 的工作原理和原因的详尽解释在 article.
中
我最初问这个问题时考虑的是 Teamcity 的代理,但我想概括一下这个问题。似乎它实际上从未成为行业标准 运行 docker-in-docker 因为它会导致数据损坏,并且大多数用例可以通过 docker- 解决to-docker 解决方案(解释如下)。尽管如此,近docker-in-docker实现在一些CI文档中仍然被称为docker-in-docker,即使它不是真正的 docker-in-docker 解决方案。
docker-to-docker 解决方法通常是将主机 docker 守护程序暴露给卷装载中的容器,即 docker run -v /var/run/docker.sock:/var/run/docker.sock ...
如果您将守护进程暴露给一个容器,或者将 dind
图像暴露给另一个容器,在这两种情况下,docker 引擎在主机级别 运行ning 或作为第一级容器docker,意味着它使用磁盘。
希望这能说明问题。
我正在尝试在 docker 中构建一个 docker 图像(docker-in-docker,dind)。图像非常大,构建失败并出现错误 no space left on device
。
设置: 我在 teamcity 代理 docker 图像上 运行 这个,具有 docker-in-docker 配置
我的主机是否需要更多内存或更多磁盘space? docker-in-docker 是在内存中构建还是在磁盘上构建?
它使用磁盘。
关于 docker-in-docker 的工作原理和原因的详尽解释在 article.
中我最初问这个问题时考虑的是 Teamcity 的代理,但我想概括一下这个问题。似乎它实际上从未成为行业标准 运行 docker-in-docker 因为它会导致数据损坏,并且大多数用例可以通过 docker- 解决to-docker 解决方案(解释如下)。尽管如此,近docker-in-docker实现在一些CI文档中仍然被称为docker-in-docker,即使它不是真正的 docker-in-docker 解决方案。
docker-to-docker 解决方法通常是将主机 docker 守护程序暴露给卷装载中的容器,即 docker run -v /var/run/docker.sock:/var/run/docker.sock ...
如果您将守护进程暴露给一个容器,或者将 dind
图像暴露给另一个容器,在这两种情况下,docker 引擎在主机级别 运行ning 或作为第一级容器docker,意味着它使用磁盘。
希望这能说明问题。