拉取镜像

在使用容器前,需要先获取相对应的镜像。例如要在Docker中安装MySQL 5.7,需要先获取MySQL 5.7的Docker镜像。相应的命令为:

docker pull mysql:5.7

命令的本质意思为,从Docker镜像仓库中获取版本为5.7的MySQL镜像。

在Docker中镜像的标识由两部分组成:

  • Repository:通常是由镜像主要运行的软件名称组成。例如Tomcat的镜像的Repository就是tomcat

  • Tag:通常代表镜像的版本。在没有显式指定Tag的情况下,Docker会给Tag一个默认值latest,代表当前镜像的最新版本。

    例如拉取MySQL最新版本的镜像:

    docker pull mysql
    

    在Docker中,没有指定Tag的情况下,都是指使用latest

每个[repository]:[tag]标识了唯一的一个镜像。

镜像除了[repository]:[tag]这个标识外,还有一个镜像ID(Image ID)。但通常使用镜像时都是使用[repository]:[tag]这个标识。

查找镜像

在我们不知道要使用的镜像的具体名称时,除了可以去Docker Hub上查找外,还可以通过使用docker search命令搜索。例如搜索nginx相关的镜像:

docker search nginx

这个命令会将镜像仓库中包含nginx字符的镜像一一列举出来。

docker search查找的是镜像仓库上的镜像。如果要查看本地镜像,可以使用docker images命令。docker images命令会列出你本地上所有的镜像,并且列出镜像的REPOSITORYTAGIMAGE ID等信息。

删除镜像

拉取到本地或者自己创建的镜像,可以使用docker rmi命令来删除。例如删除mysql:5.7镜像:

docker rmi mysql:5.7

镜像的保存和载入

创建在Docker中的镜像,默认情况下是不能移动的。但是可以通过使用docker save命令将镜像导出到磁盘中:

docker save -o [保存的目标文件路径名称] [镜像名称]

例如导出mysql:latest到磁盘:

docker save -o mysql_latest.tar mysql:latest

导出的镜像是一个tar(压缩)包。

将导出的镜像载入Docker可以使用docker load命令:

docker load -i [镜像tar包名]

例如将导出的mysql_latest.tar导入Docker:

docker load -i mysql_latest.tar

注:在使用tar包导入镜像时,Docker会在tar包中读取镜像的Repository和Tag等信息。由于[repository]:[tag]标识唯一的一个镜像。所以在导入mysql_latest.tar之前需要先在Docker中删掉mysql:latest镜像:

docker rmi mysql