首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们如何在docker history命令的输出中看到完整的命令?

我们如何在docker history命令的输出中看到完整的命令?
EN

Stack Overflow用户
提问于 2019-04-18 07:16:32
回答 2查看 12.5K关注 0票数 33

如何在docker history命令的输出中查看第三列(创建者)中的完整命令?

代码语言:javascript
复制
$ docker history docker.company.net/docker-base-images/image:1.0

IMAGE               CREATED             CREATED BY                                      SIZE
c0bddf343fc6        7 days ago          /bin/sh -c #(nop)  LABEL com.company.build.r…   0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG commit                   0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG date                     0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG repo                     0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG org                      0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG version                  0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  USER [company]               0B                  
<missing>           7 days ago          /bin/sh -c apk --no-cache add openjdk8-jre-b…   72.2MB              
<missing>           7 days ago          /bin/sh -c #(nop)  USER [root]                  0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  USER [company:company]       0B                  
<missing>           7 days ago          |5 commit=d64d27b07439e6cfff7422acafe440a946…   3.92MB              
<missing>           7 days ago          /bin/sh -c #(nop)  LABEL com.company.build.r…   0B                  
<missing>           7 days ago          |5 commit=d64d27b07439e6cfff7422acafe440a946…   4.85kB              
<missing>           7 days ago          /bin/sh -c #(nop)  ARG commit                   0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG date                     0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG repo                     0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG org                      0B                  
<missing>           7 days ago          /bin/sh -c #(nop)  ARG version                  0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop) ADD file:88875982b0512a9d0…   5.53MB              

第三列(由创建)是命令的缩写,这使得很难重建原始Dockerfile。可以在第三列中获取完整的命令吗?

感谢您的阅读。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-18 07:56:36

您可以添加标志--no-trunc来查看完整的命令。

票数 41
EN

Stack Overflow用户

发布于 2020-03-16 03:54:59

出于调试目的,我需要以表格格式查看完整的构建历史,而不是截断的构建步骤。Docker文档的例子通常是不完整的(或者根本不存在)。@Alassane_Hdiaye接受的答案可以工作,但如果在错误的位置使用,则会抛出错误。经过几次尝试,我得到了GoLang模板表格式化程序来产生我需要的结果。

Docker GoLang模板--format选项适用于docker history,但必须在--format之后输入,因为它修改的是--format,而不是docker historydocker history命令只有1个参数。--format选项更改docker history的输出,--no-trunc修改--format选项。

命令序列必须为

docker history <image-id> --format <GoLang template spec> --no-trunc

在命令行中,--no-trunc选项位于--format之后,因为它修改了--format选项。

因此,对于表格格式的完整历史记录:

代码语言:javascript
复制
docker history <image-id> --format "table{{.ID}}, {{.CreatedBy}}" --no-trunc

输出是杂乱的,因为Dockerfile RUN命令可以换行很多。

因此,通过管道将结果传输到CSV文件并在Excel中打开它(因为缺少更好的表查看器)。

代码语言:javascript
复制
docker history <image-id> --format "table{{.ID}}, {{.CreatedBy}}" --no-trunc > image-id-history.csv

因此,现在我可以在Excel中看到完整的构建指令,而不会被截断。

顺便说一句,Docker history不会输出运行和其他dockerfile构建关键字,但可以推断这些关键字。但至少完整历史记录中的完整命令是可用的。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55737199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档