## 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/