镜像是 Docker 的三大组件之一。Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像,Docker Hub上有大量的高质量的镜像可以用。
拉取镜像
从 Docker 镜像仓库获取镜像的命令是 docker pull
。
其命令格式为: $ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
示例: $ docker pull ubuntu:18.04
具体的选项可以通过 docker pull --help
命令看到,这里我们说一下镜像名称的格式。
上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub (docker.io
)获取镜像。而镜像名称是 ubuntu:18.04
,因此将会获取官方镜像 library/ubuntu
仓库中标签为 18.04
的镜像。docker pull
命令的输出结果最后一行会给出镜像的完整名称,即: docker.io/library/ubuntu:18.04
。
如果从 Docker Hub 下载镜像非常缓慢,可以配置国内镜像加速器。
列出镜像
要想列出已经下载下来的镜像,可以使用 docker image ls
命令或者docker images命令。
$ docker image ls
$ docker images
列出的结果会包含了仓库名
、标签
、镜像ID
、创建时间
以及所占用的空间
。其中仓库名、标签在之前的基础概念章节已经介绍过了。镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个标签。
或者根据仓库名列出镜像,当镜像较多的时候,这个比较有用;
$ docker image ls ubuntu
悬挂镜像:这个镜像既没有仓库名,也没有标签,均为 <none>,
一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除。
$ docker image prune
镜像详情: 可以通过以下命令展示镜像的细节,包括镜像层数据和元数据:
$ docker image inspect 镜像ID或者镜像名
删除镜像
当不需要某个镜像时,可以使用 docker image rm
命令删除本地的镜像,其格式为:
$ docker image rm [选项] <镜像1> [<镜像2> ...]
其中,<镜像>
可以是 镜像ID
、镜像名
。当镜像存在关联容器时,不允许删除该镜像。
通过IMAGE ID删除: $ docker image rm 501ad78535f0
通过镜像名删除: $ docker image rm centos:latest