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 | 不要截断输出,显示完整的镜像描述信息。 |