之前介绍了Docker镜像作为Docker三大组件之一,Docker运行容器之前需要本地存在对应的Docker镜像,如果本地不存在该镜像,则会从镜像仓库下载镜像。本文的内容假设您已经在本地成功安装Docerk,并配置了国内下载镜像。
本文主要内容包括: (1) Docker镜像的获取 (2) Docker镜像的运行 (3) 查看本地Docker镜像 (4) Docker镜像的删除
Docker Hub上具有大量高质量的Docker镜像供用户下载使用,我们可以使用docker pull
命令从Docker镜像仓库获取Docker镜像。
比如,如果想要下载ubuntu:16.04
Docker镜像(镜像名称可以从Docker Hub上获取,另外通常软件安装手册中也会给出镜像获取方法),可以使用如下命令:
docker pull ubuntu:16.04
说明:
sha256
哈希值摘要,用于保证下载的镜像与远程仓库保持一致。如下图所示,经过镜像的获取操作,我们本地就有了ubuntu16.04
的镜像了。以镜像为基础就可以启动并运行一个ubuntu16.04
容器了。
以ubuntu16.04
镜像为例,运行Docker容器的命令如下所示:
docker run -it --rm ubuntu:16.04
其中,运行容器的参数作用如下表所示:
参数 | 描述 |
---|---|
-it | -i表示交互式操作;-t表示终端 |
--rm | 表示退出容器时,自动删除创建的容器 |
这样,我们就在本地运行了ubuntu16.04
镜像的一个容器,使用cat /proc/version
就可以查看容器的linux版本号信息如下所示:
退出容器的命令为exit
。
如下图所示,我们可以使用docker image ls
命令查看本地Docker镜像:
本地Docker镜像列表包含的主要信息如下表所示:
镜像属性 | 描述 |
---|---|
REPOSITORY | 仓库名字 |
TAG | 镜像标签 |
IMAGE ID | 镜像ID,Docker镜像的唯一标识,一个镜像可以对应多个标签,标识软件的不同版本 |
CTEATED | 镜像创建时间 |
SIZE | 镜像体积 |
docker image ls
是我们最常用的查看本地Docker镜像命令,其后面可以跟上选项值,以实现特定的功能。如下图所示,我们可以使用docker image ls -q
只返回本地Docker镜像ID:
想要了解其他选项,可以使用docker image ls --help
进行查看。
删除本地Docker镜像命令格式如下所示:
docker image rm [选项] <镜像1> ...
注意:常用的选项为
-f
,表示强制删除本地Docker镜像,有的时候想要删除的镜像正被占用,则可以使用该选项,否则会出现如下所示的错误信息:
在上面命令的基础上,本文给出两种删除本地Docker镜像的三种方法:(1)使用DockerID、镜像名、摘要删除;(2)配合docker image ls
命令删除Docker镜像。
如下图所示,使用docker image ls
命令查看本地镜像文件:
(1)通过仓库名(REPOSITORY
)删除open_bte_ssh
镜像
注意:由于该镜像的TAG不是默认的latest
,所以需要使用open_bte_ssh:v1
才能识别该镜像,命令如下所示:
docker image rm open_bte_ssh:v1
(2)通过仓库名(REPOSITORY
)删除busybox
镜像
该镜像的TAG
为默认的latest
,所以我们只需要使用仓库名busybox
即可以删除,命令如下所示:
docker image rm busybox
(3)通过镜像ID(IMAGE ID
)删除debian
与gosl/gosl
镜像
由于镜像ID是唯一标识,所以只通过镜像ID就可以完成debian
镜像的删除:
docker image rm 8a94f77c4ac3
另外,我们还可以很方便的通过镜像ID的前3位进行gosl/gosl
镜像删除操作:
docker image rm bfa
docker image ls
命令删除Docker镜像结合docker image ls -q
与docker rm
命令,可以完成批量删除镜像。
(1)删除本地所有镜像的命令
docker image rm $(docker image ls -q)
(2)批量删除本地特定镜像的命令
比如,我们想要删除本地仓库名为ubuntu
的镜像指令为:
docker image rm $(docker image ls -q ubuntu)