docker历史上的(nop)是什么意思?

在列出docker history时, #(nop)前缀是什么意思?

 $ docker history swarm IMAGE CREATED CREATED BY c54bba046158 9 days ago /bin/sh -c #(nop) CMD ["--help"] 

NOP代表“无操作”。

Docker为每个图层运行一个shell。 除了RUN命令外,Dockerfile中的所有docker命令(或图层)都显示在历史logging中为空或注释掉的shell命令。 #符号表示注释的开始,之后的任何内容都将被/bin/sh跳过。 同样,如果您在terminal中input:

 user@machine $ echo hello world hello world user@machine $ #But none of these lines starting with # do anything user@machine $ #echo hello world 

RUN命令不需要由shell解释,而是由docker在内部处理。

历史logging(包括非RUN命令)可以由层caching使用,以便在之前运行相同命令的情况下跳过处理。