簡體   English   中英

為什么某些 Docker CLI 子命令帶有星號?

[英]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)
(...)

我知道這些是插件(即buildxcomposescan ),但添加星號對我來說毫無意義。

為什么在命令名稱中添加星號,添加星號的源代碼在哪里?

星號 ( * ) 是一個裝飾,顯示這些子命令是由插件提供的,而不是docker cli 本身的一部分。 它幫助用戶區分內置和插件子命令。 括號中的提供者和插件版本相同,僅針對插件顯示。

Asterisk 本身只是“標記”而不是子命令名稱的一部分(因此運行buildx命令將只是docker buildx ... )。 插件是docker cli 在運行時找到的獨立二進制文件,它們的源代碼(如果可用)通常位於它們自己的存儲庫中 - 例如這里的buildx

docker-ce代碼庫中用星號裝飾所有插件的函數是components/cli/cli/cobra.go decoratedName() 然后在使用消息模板使用該函數,該模板在列出所有子命令時呈現。

注意:上面代碼庫的鏈接指向docker-ce存儲庫(Docker cli存儲庫中的相同功能在這里和模板在這里)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM