博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
13-调试Dockerfile
阅读量:5092 次
发布时间:2019-06-13

本文共 608 字,大约阅读时间需要 2 分钟。

包括 Dockerfile 在内的任何脚本和程序都会出错。有错并不可怕,但必须有办法排查,所以本节讨论如何 debug Dockerfile。

先回顾一下通过 Dockerfile 构建镜像的过程:

  1. 从 base 镜像运行一个容器。

  2. 执行一条指令,对容器做修改。

  3. 执行类似 docker commit 的操作,生成一个新的镜像层。

  4. Docker 再基于刚刚提交的镜像运行一个新容器。

  5. 重复 2-4 步,直到 Dockerfile 中的所有指令执行完毕。

从这个过程可以看出,如果 Dockerfile 由于某种原因执行到某个指令失败了,我们也将能够得到前一个指令成功执行构建出的镜像,这对调试 Dockerfile 非常有帮助。我们可以运行最新的这个镜像定位指令失败的原因。

我们来看一个调试的例子。Dockerfile 内容如下:

 执行 docker build

Dockerfile 在执行第四步 RUN 指令时失败。我们可以利用第三步创建的镜像 b00564464a41 进行调试,方式是通过 docker run -it 启动镜像的一个容器。

手工执行 RUN 指令很容易定位失败的原因是 ubuntu 镜像中没有 yum命令。虽然这是个极其简单的例子,但它很好地展示了调试 Dockerfile 的方法。

转载于:https://www.cnblogs.com/mkxfs/p/10148820.html

你可能感兴趣的文章
VC2010常见问题的解决方案
查看>>
超级详细Tcpdump 的用法
查看>>
程序员的思维修炼
查看>>
display:none和visibility:hidden的区别
查看>>
HDOJ---1232 畅通工程[并查集]
查看>>
Python学习路程-常用设计模式学习
查看>>
[JOYOI1326] 剑人合一
查看>>
[JZOJ100047] 【NOIP2017提高A组模拟7.14】基因变异
查看>>
梦断代码阅读笔记01
查看>>
利用“Java同包同名类执行顺序”取消Java 网站应用程序Licence验证
查看>>
UNICODE与ASCII码的关系(MTK)
查看>>
underscore源码学习笔记(一)
查看>>
iOS项目开发实战——通过Http Get方式与server通信
查看>>
ES6 Number
查看>>
Java基础学习-IO流
查看>>
TFS 2017 持续集成速记
查看>>
SVN客户端下载和Svn visual studio插件
查看>>
定义的form,宏等双击提示不存在的…
查看>>
移动端前端笔记 — 遇到的常见JS与CSS问题及解决方法
查看>>
算法笔记_039:杨辉三角形(Java)
查看>>