2016-12-23 16 views
6

Tiền tố #(nop) có nghĩa là gì khi liệt kê docker history?# (nop) có nghĩa là gì trong lịch sử docker?

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

Tôi sẽ nói "không hoạt động". Bạn có thể đăng phần liên quan của Dockerfile không? – user2915097

+0

Hãy suy nghĩ @ user2915097 là đúng. https://en.wikipedia.org/wiki/NOP – lvthillo

+0

Nó có khả năng đánh dấu lệnh như là một no-op, nhưng câu hỏi TẠI SAO điều này xảy ra vẫn còn ... – maligree

Trả lời

2

NOP là viết tắt của "không hoạt động".

Trình điều khiển Docker chạy vỏ cho mọi lớp. Tất cả các lệnh docker (hoặc các lớp) trong Dockerfile ngoại trừ lệnh RUN hiển thị trong lịch sử là rỗng hoặc nhận xét ra các lệnh shell. Các dấu hiệu # đánh dấu sự khởi đầu của bình luận và bất cứ điều gì sau đó sẽ được bỏ qua bởi /bin/sh. Tương tự, nếu bạn gõ trong terminal:

[email protected] $ echo hello world 
hello world 
[email protected] $ #But none of these lines starting with # do anything 
[email protected] $ #echo hello world 

Các RUN lệnh phi sẽ không cần phải được giải thích bằng vỏ, nhưng thay vì được xử lý bởi Docker trong nội bộ.

Lịch sử (bao gồm các lệnh không RUN) có thể được bộ nhớ cache lớp sử dụng để bỏ qua xử lý trong trường hợp lệnh tương tự đã được chạy trước đó.