栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何检查失败的docker build的文件系统?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何检查失败的docker build的文件系统?

每当

RUN
docker 成功从Dockerfile
执行命令时,都会提交映像文件系统中的新层。您可以方便地将这些图层ID用作图像来启动新容器。

采取以下Dockerfile:

FROM busyboxRUN echo 'foo' > /tmp/foo.txtRUN echo 'bar' >> /tmp/foo.txt

并构建它:

$ docker build -t so-2622957 .Sending build context to Docker daemon 47.62 kBStep 1/3 : FROM busybox ---> 00f017a8c2a6Step 2/3 : RUN echo 'foo' > /tmp/foo.txt ---> Running in 4dbd01ebf27f ---> 044e1532c690Removing intermediate container 4dbd01ebf27fStep 3/3 : RUN echo 'bar' >> /tmp/foo.txt ---> Running in 74d81cb9d2b1 ---> 5bd8172529c1Removing intermediate container 74d81cb9d2b1Successfully built 5bd8172529c1

您现在可以开始从一个新的容器

00f017a8c2a6
044e1532c690
5bd8172529c1

$ docker run --rm 00f017a8c2a6 cat /tmp/foo.txtcat: /tmp/foo.txt: No such file or directory$ docker run --rm 044e1532c690 cat /tmp/foo.txtfoo$ docker run --rm 5bd8172529c1 cat /tmp/foo.txtfoobar

当然,您可能想启动一个Shell来探索文件系统并尝试命令:

$ docker run --rm -it 044e1532c690 sh      / # ls -l /tmptotal 4-rw-r--r--    1 root     root  4 Mar  9 19:09 foo.txt/ # cat /tmp/foo.txt foo

当Dockerfile命令之一失败时,您需要做的是查找 上一层ID, 并在根据该ID创建的容器中运行Shell:

docker run --rm -it <id_last_working_layer> bash -il

放入容器后:

  • 尝试失败的命令,并重现问题
  • 然后修复命令并进行测试
  • 最后使用固定命令更新您的Dockerfile

如果您真的需要试验失败的实际层而不是从最后一个工作层开始工作,请参阅Drew的答案。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/385329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号