[英]Why some Docker CLI subcommands have asterisks?
在 Docker Desktop 中,一些 CLI 子命令帶有星號 (*),例如:
$ docker
Usage: docker [OPTIONS] COMMAND
(...)
Management Commands:
builder Manage builds
buildx* Build with BuildKit (Docker Inc., v0.5.1-docker)
compose* Docker Compose (Docker Inc., 2.0.0-beta.4)
(...)
scan* Docker Scan (Docker Inc., v0.8.0)
(...)
我知道這些是插件(即buildx 、 compose和scan ),但添加星號對我來說毫無意義。
為什么在命令名稱中添加星號,添加星號的源代碼在哪里?
星號 ( *
) 是一個裝飾,顯示這些子命令是由插件提供的,而不是docker
cli 本身的一部分。 它幫助用戶區分內置和插件子命令。 括號中的提供者和插件版本相同,僅針對插件顯示。
Asterisk 本身只是“標記”而不是子命令名稱的一部分(因此運行buildx
命令將只是docker buildx ...
)。 插件是docker
cli 在運行時找到的獨立二進制文件,它們的源代碼(如果可用)通常位於它們自己的存儲庫中 - 例如這里的buildx
。
在docker-ce
代碼庫中用星號裝飾所有插件的函數是components/cli/cli/cobra.go
decoratedName() 。 然后在使用消息模板中使用該函數,該模板在列出所有子命令時呈現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.