## docker search 搜索镜像
[官方镜像仓库][1]
~~~
docker search [-f|--filter[=[]]][--limit[=LIMIT]] [--no-index] [--no-trunc] term
~~~
~~~
-f, --filter=[]
- stars=<numberOfStar>
docker search --filter=starts=3
- is-automated=(true|false)
- is-official=(true|false)
--limit=LIMIT
限制显示数目,默认是25
--no-trunc=true|false
不截断输出
~~~
## docker pull 获取镜像
从 Docker Registry 获取镜像的命令是 docker pull 。其命令格式为:
~~~
docker pull [选项] [Docker Registry地址]<仓库名>[:标签]
~~~
* Docker Registry地址:地址的格式一般是 <域名/IP>[:端口号] 。默认地址是Docker Hub。
* 仓库名:如之前所说,这里的仓库名是两段式名称,既 **<用户名>/<软件名>** 。对于 Docker Hub,如果不给出用户名,则默认为 library ,也就是官方镜像。
### 选项
~~~
-a, --all-tags
下载所有标签,默认是latest
~~~
## docker images 列出镜像
~~~
docker images [-a|--all] [-f|--filter[=[]]] [--no-trunc] [-q|--quiet] [REPOSITORY[:TAG]]
~~~
### 选项
~~~
-a, --all=true|false
显示所有镜像,默认只显示运行中的镜像
-f, --filter=[]
- dangling=(true|false)
找到未使用的镜像
- label=<key> or label=<key>=<value>
根据标签进行过滤
- before=(<image-name>[:tag]|<image-id>| ⟨image@digest⟩)
- since=(<image-name>[:tag]|<image-id>| ⟨image@digest⟩)
--format="TEMPLATE"
.ID - Image ID
.Repository - Image repository
.Tag - Image tag
.Digest - Image digest
.CreatedSince - Elapsed time since the image was created.
.CreatedAt - Time when the image was created..
.Size - Image disk size.
--no-trunc=true|false
不截断输出信息
-q, --quiet=true|false
只显示镜像ID
~~~
#### 举例
~~~
docker images --format "{{.ID}}: {{.Repository}}"
5f515359c7f8: redis
05a60462f8ba: nginx
fe9198c04d62: mongo
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag
}}"
IMAGE ID REPOSITORY TAG
5f515359c7f8 redis latest
05a60462f8ba nginx latest
fe9198c04d62 mongo 3.2
~~~
### 虚悬镜像
官方已经发布新版本覆盖了这个版本,或者镜像名称被其他镜像使用。
## docker rmi 删除镜像
~~~
docker rmi centos[:tag]
~~~
tag用于精确定位
~~~
-f 强制删除
--no-prune 删除镜像时,不删除未打标签的父镜像
使用id可能会删除多个标签
~~~
批量删除
~~~
docker rmi $(docker images -q centos )
~~~
>[info]因为一个镜像可以对应多个标签,因此当我们删除了所指定的标签后,可能还有别的标签指向了这个镜像,如果是这种情况,那么 Delete行为就不会发生。所以并非所有的 docker rmi 都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已。
[1]:https://store.docker.com/