Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker search 常用命令。

1、docker search 简介

docker search 命令用于搜索 Docker Hub 上的公共镜像,并返回匹配的镜像列表。可以使用该命令查找适合应用程序需求的镜像,然后使用 docker pull 命令将其下载到本地。

参考文档https://docs.docker.com/engine/reference/commandline/search/

2、docker search 语法

docker search [OPTIONS] TERM

3、docker search 命令

1)按名称搜索镜像

docker search busybox

NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
busybox                          Busybox base image.                             316       [OK]
progrium/busybox                                                                 50                   [OK]
radial/busyboxplus               Full-chain, Internet enabled, busybox made...   8                    [OK]
odise/busybox-python                                                             2                    [OK]
azukiapp/busybox                 This image is meant to be used as the base...   2                    [OK]
ofayau/busybox-jvm               Prepare busybox to install a 32 bits JVM.       1                    [OK]
shingonoide/archlinux-busybox    Arch Linux, a lightweight and flexible Lin...   1                    [OK]
odise/busybox-curl                                                               1                    [OK]
ofayau/busybox-libc32            Busybox with 32 bits (and 64 bits) libs         1                    [OK]
peelsky/zulu-openjdk-busybox                                                     1                    [OK]
skomma/busybox-data              Docker image suitable for data volume cont...   1                    [OK]
elektritter/busybox-teamspeak    Lightweight teamspeak3 container based on...    1                    [OK]
socketplane/busybox                                                              1                    [OK]
oveits/docker-nginx-busybox      This is a tiny NginX docker image based on...   0                    [OK]
ggtools/busybox-ubuntu           Busybox ubuntu version with extra goodies       0                    [OK]
nikfoundas/busybox-confd         Minimal busybox based distribution of confd     0                    [OK]
openshift/busybox-http-app                                                       0                    [OK]
jllopis/busybox                                                                  0                    [OK]
swyckoff/busybox                                                                 0                    [OK]
powellquiring/busybox                                                            0                    [OK]
williamyeh/busybox-sh            Docker image for BusyBox's sh                   0                    [OK]
simplexsys/busybox-cli-powered   Docker busybox images, with a few often us...   0                    [OK]
fhisamoto/busybox-java           Busybox java                                    0                    [OK]
scottabernethy/busybox                                                           0                    [OK]
marclop/busybox-solr

2)显示非截断描述(--no-trunc)

显示名称包含“busybox”的镜像,至少有3个星级,并且输出中的描述没有被截断:

docker search --filter=stars=3 --no-trunc busybox

NAME                 DESCRIPTION                                                                               STARS     OFFICIAL   AUTOMATED
busybox              Busybox base image.                                                                       325       [OK]
progrium/busybox                                                                                               50                   [OK]
radial/busyboxplus   Full-chain, Internet enabled, busybox made from scratch. Comes in git and cURL flavors.   8                    [OK]

3)限制搜索结果 (--limit)

--limit 标志是一个搜索返回的最大结果数。如果未设置任何值,则默认值由守护程序设置。

4)过滤器 (--filter)

筛选标志(-f 或 --filter)格式为键=值对。如果有多个过滤器,则传递多个标志(例如 --filter is-automated=true --filter stars=3

当前支持的筛选器有:

  • stars(整数 - 镜像的星级数量)
  • is-automated(布尔值 - 是或否)- 镜像是否自动化构建
  • is-official(布尔值 - 是或否)- 镜像是否官方

5)stars

显示名称包含“busybox”,并且至少有3个星号的镜像:

docker search --filter stars=3 busybox

NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
busybox              Busybox base image.                             325       [OK]
progrium/busybox                                                     50                   [OK]
radial/busyboxplus   Full-chain, Internet enabled, busybox made...   8                    [OK]

6)is-automated

显示名称包含“busybox”并且是自动化构建的镜像:

docker search --filter is-automated=true busybox

NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
progrium/busybox                                                     50                   [OK]
radial/busyboxplus   Full-chain, Internet enabled, busybox made...   8                    [OK]

7)is-official

显示名称包含“busybox”,至少有3个星级并且是官方构建的镜像:

docker search --filter is-official=true --filter stars=3 busybox

8)格式化输出 (--format)

格式选项(--format)使用 Go 模板使搜索输出漂亮地打印。

Go 模板的有效占位符为:

占位符

描述

.Name

镜像名称

.Description

镜像描述

.StarCount

镜像的星级数量

.IsOfficial

如果镜像是官方的,则为“OK”

.IsAutomated

如果镜像构建是自动化的,则为 “OK”

当使用 --format 选项时,搜索命令将根据模板声明精确输出数据。如果使用 table 指令,则包括列标题。

使用一个没有标题的模板,并且为所有镜像输出名称和 StarCount 条目,用冒号(:)分隔:

docker search --format "{{.Name}}: {{.StarCount}}" nginx

nginx: 5441
jwilder/nginx-proxy: 953
richarvey/nginx-php-fpm: 353
million12/nginx-php: 75
webdevops/php-nginx: 70
h3nrik/nginx-ldap: 35
bitnami/nginx: 23
evild/alpine-nginx: 14
million12/nginx: 9
maxexcloo/nginx: 7

输出表格格式:

docker search --format "table {{.Name}}\t{{.IsAutomated}}\t{{.IsOfficial}}" nginx

NAME                                     AUTOMATED           OFFICIAL
nginx                                                        [OK]
jwilder/nginx-proxy                      [OK]
richarvey/nginx-php-fpm                  [OK]
jrcs/letsencrypt-nginx-proxy-companion   [OK]
million12/nginx-php                      [OK]
webdevops/php-nginx                      [OK]

4、命令选项

选项

默认值

描述

--filter, -f

根据提供的条件筛选输出

--format

使用 Go 模板漂亮地打印搜索结果

--limit

最大搜索结果数

--no-trunc

不要截断输出,显示完整的镜像描述信息。

推荐文档

相关文档

大家感兴趣的内容

随机列表