您的位置:首页 > 运维架构 > Docker

调试docker build过程中出错的Dockerfile

2020-12-20 17:40 176 查看

原理

当我们执行

docker build
命令使用Dockerfile构建一个新的镜像时,docker内部的构建过程大致如下:

  1. 从基础镜像运行一个容器;
  2. 执行一条指令,对容器做修改;
  3. 执行类似
    docker commit
    的操作,生成一个新的镜像层;
  4. Docker会再基于刚刚提交的镜像运行一个新容器;
  5. 重复2 ~ 4步,直到Dockerfile中的所有指令执行完毕。

因此,我们只需要在出错的时候重新启动出错前一步的Docker容器即可回溯到出错前的场景,然后再手动执行出错的命令来分析出错的原因。

举个栗子

执行

docker build
过程中出现如下错误:

Step 9/26 : RUN XXXXXX
...
...
---> fb41878be150
Step 10/26 : RUN XXXXXX
---> Running in 24bc7a0a5c87
...
error: XXX

可以看到在Step9之后会临时保存 container:

fb41878be150
我们只需执行以下命令即可到达出错前的容器状态:

docker container run -it fb41878be150 /bin/bash

最后再根据实际Dockerfile中Step10中的命令来手动执行排查出错的原因即可。

参考

Debugging a Dockerfile

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: