docker - Mac 上 Docker 中的各种缓存是否损坏?
问题描述
我正在尝试对我在网上找到的 Dockerfile 进行故障排除。由于它以一种奇怪的方式失败,我想知道失败的 docker build 或 docker run 从该文件的各个子集或我一直在试验的其他文件是否可能会破坏 Docker 自身状态的某些部分。
换句话说,是否可能有助于重新启动 Docker 本身、重新启动计算机或执行一些其他 Docker 命令来消除这种可能性?
解决方案
有时只是重新启动会有所帮助,尝试重新启动 Docker for Mac 或完全重新启动并没有错,但我想不出它会修复什么特定症状,而且这不是我需要经常做的事情。
我只遇到了两类听起来像你描述的问题。
如果您的 Dockerfile 步骤始终成功,但产生不一致的结果:
RUN curl http://may.not.exist.example.com/ || true
您可能会遇到底层命令失败或产生错误输出但整个RUN
步骤成功的情况。 docker build --no-cache
将忽略这一点重新运行构建,并且非常激进的docker rmi
序列(删除有问题的图像的每个构建,当前和过去)也将清理它。
我遇到的另一类问题涉及/var/lib/docker
. 这通常具有非常明显的症状,通常涉及您知道有效的设置上的“找不到文件”或“安装目录失败”类型错误。我在本机 Linux 上遇到的比 Docker for Mac 更多,可能是因为 DfM Linux 安装对 Docker 更加可控和优化(它绝对没有运行带有任意供应商补丁的 3 年前内核)。在 Linux 上,您可以通过停止 Docker、删除 中的所有内容/var/lib/docker
并重新启动 Docker 来解决此问题;在 Docker for Mac 的首选项窗口中,有一个“重置”页面,其中包含各种破坏性清理选项和“重置为出厂默认设置”
推荐阅读
- flutter - 必须向文本小部件提供非空字符串 - Flutter Android
- twitter-bootstrap - 如何将表单检查内联与字段集和图例一起使用
- adblock - 在 Ublock Origin 中,如何根据是否有孩子的孩子来修改 div 的样式?
- python - 我可以澄清一下下面的 Python 代码吗?
- css - 将 CSS 样式应用于包含某些元素的元素?
- php - 如何在 localhost 上为 gmail 使用 IMAP?
- python - 叶时间滑块不会删除地图中先前添加的标记
- java - 试图调用不存在的方法。STS
- c++ - Win32 API CreateWindowW 与菜单创建冲突
- php - 如何在 PHP 中使 while 循环的最后一次交互表现不同?