1. 程式人生 > 實用技巧 >【Docker】命令 search

【Docker】命令 search

參考教程:https://docs.docker.com/engine/reference/commandline/search/

環境

  1. virtual box 6.1
  2. centos 7.8
  3. docker 19.03

命令格式

docker search [OPTIONS] TERM

使用 search 命令可以在 https://hub.docker.com/ 上搜索可用的映象。

映象名稱結構

Registry/<Your Docker ID>/<Repository Name>:<tag>

Registry

表示使用的 Registry,通常意義上的遠端倉庫,可以使用私有的 Registry,如果不寫,預設為 docker hub 倉庫。因為倉庫地址在國外,國內有一些大廠提供映象加速器,可以加速映象的下載速度。
除了公共的 Registry,也可以搭建私有的 Registry,一般不對外公開,內部進行映象的共享。私有的 Registry 可以使用 Docker Registry 搭建,也可以使用 Harbor 和 Sonatype Nexus 等。

Docker ID

使用者在 docker hub 上的使用者名稱,這個相當於名稱空間的概念。如果不寫,預設是 docker hub 的 library 名稱空間下。

Repository

倉庫名稱,相當於一個專案的概念,不能省略。

tag

類似於版本的概念,如果不寫,預設為 lastest,即最新。

命令選項

名稱 預設值 描述
--automated 已過時,只顯示自動構建的映象,使用 filter 替代
--filter , -f 根據提供的條件過濾輸出
--format 格式化輸出
--limit 25 搜尋結果的最大顯示數量
--no-trunc
不截斷輸出
--stars , -s 已過時,根據 star 數進行過濾,使用 filter 替代

示例

根據名稱搜尋

$ docker search busybox
NAME                      DESCRIPTION                                     STARS      OFFICIAL    AUTOMATED
busybox                   Busybox base image.                             1974       [OK]
progrium/busybox                                                          71                     [OK]
radial/busyboxplus        Full-chain, Internet enabled, busybox made f…   32                     [OK]
yauritux/busybox-curl     Busybox with CURL                               10
arm32v7/busybox           Busybox base image.                             8
armhf/busybox             Busybox base image.                             6
odise/busybox-curl                                                        4                      [OK]
arm64v8/busybox           Busybox base image.                             3
s390x/busybox             Busybox base image.                             2
prom/busybox              Prometheus Busybox Docker base images           2                      [OK]
aarch64/busybox           Busybox base image.                             2
arm32v6/busybox           Busybox base image.                             2
p7ppc64/busybox           Busybox base image for ppc64.                   2
joeshaw/busybox-nonroot   Busybox container with non-root user nobody     2
i386/busybox              Busybox base image.                             2
vukomir/busybox           busybox and curl                                1
spotify/busybox           Spotify fork of https://hub.docker.com/_/bus…   1
ppc64le/busybox           Busybox base image.                             1
sou856099/busybox                                                         0
amd64/busybox             Busybox base image.                             0
concourse/busyboxplus                                                     0
arm32v5/busybox           Busybox base image.                             0
emccorp/busybox           Busybox                                         0
ggtools/busybox-ubuntu    Busybox ubuntu version with extra goodies       0                      [OK]
e2eteam/busybox                                                           0

限制搜尋數量

$ docker search busybox --limit  4
NAME                    DESCRIPTION                                     STARS    OFFICIAL    AUTOMATED
busybox                 Busybox base image.                             1974     [OK]
radial/busyboxplus      Full-chain, Internet enabled, busybox made f…   32                   [OK]
yauritux/busybox-curl   Busybox with CURL                               10
vukomir/busybox         busybox and curl                                1

不截斷輸出

描述資訊欄不會被截斷,會顯示完整的描述資訊。

$ docker search busybox --limit  4 --no-trunc
NAME                    DESCRIPTION                        STARS               OFFICIAL            AUTOMATED
busybox                 Busybox base image.                1974                [OK]
radial/busyboxplus      Full-chain, Internet enabled, 
busybox made from scratch. Comes in git and cURL flavors.   32                                      [OK]
yauritux/busybox-curl   Busybox with CURL                   10
vukomir/busybox         busybox and curl                    1

根據 stars 數量過濾

$ docker search busybox  -s 1000
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                DESCRIPTION           STARS               OFFICIAL            AUTOMATED
busybox             Busybox base image.   1974                [OK]
$ docker search busybox  --stars 1000
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                DESCRIPTION           STARS               OFFICIAL            AUTOMATED
busybox             Busybox base image.   1974                [OK]
$ docker search busybox  --filter stars=1000
NAME                DESCRIPTION           STARS               OFFICIAL            AUTOMATED
busybox             Busybox base image.   1974                [OK]

根據自動化過濾

$ docker search busybox  --automated
Flag --automated has been deprecated, use --filter=is-automated=true instead
NAME                     DESCRIPTION                                     STARS     OFFICIAL    AUTOMATED
progrium/busybox                                                         71                    [OK]
radial/busyboxplus       Full-chain, Internet enabled, busybox made f…   32                    [OK]
odise/busybox-curl                                                       4                     [OK]
prom/busybox             Prometheus Busybox Docker base images           2                     [OK]
ggtools/busybox-ubuntu   Busybox ubuntu version with extra goodies       0                     [OK]
$ docker search busybox  --filter is-automated=true
NAME                     DESCRIPTION                                     STARS     OFFICIAL    AUTOMATED
progrium/busybox                                                         71                    [OK]
radial/busyboxplus       Full-chain, Internet enabled, busybox made f…   32                    [OK]
odise/busybox-curl                                                       4                     [OK]
prom/busybox             Prometheus Busybox Docker base images           2                     [OK]
ggtools/busybox-ubuntu   Busybox ubuntu version with extra goodies       0                     [OK]

根據官方映象過濾

$ docker search busybox  --filter is-official=true
NAME                DESCRIPTION           STARS               OFFICIAL            AUTOMATED
busybox             Busybox base image.   1974                [OK]

格式化輸出

格式化選項(--format)使用 Go 模板漂亮地列印搜尋輸出,Go 模板的有效佔位符為:

Placeholder Description
.Name 映象名稱
.Description 映象描述
.StarCount stars 數量
.IsOfficial 如果是官方映象,顯示 “OK”
.IsAutomated 如果是自動化構建,顯示“OK”
$ docker search --format "{{.Name}}: {{.StarCount}}" nginx --limit  3
nginx: 13652
jwilder/nginx-proxy: 1864
bitnami/nginx: 88
$ docker search --format "table {{.Name}}\t{{.IsAutomated}}\t{{.IsOfficial}}" nginx --limit  4
NAME                      AUTOMATED           OFFICIAL
nginx                                         [OK]
jwilder/nginx-proxy       [OK]
richarvey/nginx-php-fpm   [OK]
bitnami/nginx             [OK]

總結

介紹了 search 命令的使用,除了根據名稱搜尋,還可以根據一些限制條件進行過濾。介紹了 --format 選項的使用方法,對輸出的內容進行格式化。