目录

学习 Docker(3)-镜像基本操作

docker images

列出镜像列表。

1
docker images [OPTIONS] [REPOSITORY[:TAG]]
  • --all -a 列出所有镜像(默认会隐藏中间层镜像);
  • —-no-trunc 显示完整的信息,如完整的 ID;
  • --quiet -q 只列出镜像 ID。

另外,还可以只展示指定名称和 TAG 的镜像:

1
2
3
4
$ docker images java:8

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
java                8                   308e519aac60        6 days ago          824.5 MB

docker rmi

删除一个或多个镜像。

1
docker rmi [OPTIONS] IMAGE [IMAGE...]
  • --force -f 强制删除镜像。
  • --no-prune 不删除没有标签的父镜像。

当多个不同名称的镜像拥有相同的 ID 时,不能通过 ID 删除多个镜像,需要使用 -f 参数。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)

$ docker rmi fd484f19954f

Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force
2013/12/11 05:47:16 Error: failed to remove one or more images

删除所有镜像

1
docker rmi $(docker images -a -q)

docker inspect

展示镜像的底层信息。

1
docker inspect [OPTIONS] NAME|ID [NAME|ID...]

搜索 Docker Hub 上的镜像

1
docker search [OPTIONS] TERM
  • —-limit 最大搜索结果数量,默认值为 25。

返回的结果中,会显示出镜像 star 的数量、是否官方镜像和是否自动构建。

docker pull

从仓库拉取镜像或者 repository。如果不传 TAG 名称,默认 TAG 为 latest

1
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • --all -a 下载 repository 中所有 TAG 的镜像。

该步骤不是必须的,如果本地镜像不存在,docker run 在执行时会自动从 Docker Hub 拉取镜像。

从自定义仓库(比如镜像站仓库)拉取镜像,例如:

1
 docker pull myregistry:5000/testing/test-image

表示从 myregistry5000 端口拉取 testing/test-image 镜像。

docker push

向仓库推送镜像或 repository

1
docker push [OPTIONS] NAME[:TAG]

如果向 Docker Hub 推送,需要拥有 Docker Hub 账户。

向自定义仓库推送:

1
docker push myregistry:5000/testing/test-image

docker tag

从源镜像创建新镜像

1
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

源镜像可以是名称

1
docker tag httpd fedora/httpd:version1.0

名称 + TAG

1
docker tag httpd:test fedora/httpd:version1.0.test

或者 ID

1
docker tag 0e5574283393 fedora/httpd:version1.0

如果目标镜像要推送到自定义仓库,需要指定自定义仓库地址和端口。

1
docker tag 0e5574283393 myregistryhost:5000/fedora/httpd:version1.0