Docker容器实战八:镜像管理命令

一. 搜索镜像
Docker默认会从Docker Hub的网站下载镜像,在下载之前我们可以使用docker search命令搜索该站点上的镜像仓库,该命令将列出相关的仓库信息。

命令的格式为docker search + [选项] +,如:

Docker容器实战八:镜像管理命令

注释:NAME字段为镜像仓库名称,搜索结果会列出网站上包括Docker官方以及第三方的镜像仓库,其中第一个带nginx关键字的为官方仓库,其他第三方镜像仓库会在前面带上名称空间信息;DESCRIPTION为仓库的描述;STARS可以理解为镜像的受欢迎程度,一般优先选择START多的镜像;OFFICIAL表示该镜像是否为官方镜像;AUTOMATED代表为自动构建;

docker search 支持以下命令选项:

-f, –filter filter :根据条件过滤输出内容;

–format string :格式化输出内容;

–limit int :限制显示结果数量,默认为25个;

–no-trunc:显示完整信息;

例如:只搜索官方的Nginx镜像,可以使用如下命令选项

Docker容器实战八:镜像管理命令

二. 下载镜像
在创建容器前,我们需要先下载相关的镜像。使用docker [image] pull 命令可直接从Docker Hub网站上下载镜像到本地,格式为:docker  [image] pull :。

此处以Nginx镜像作为示例,如下:

Docker容器实战八:镜像管理命令

注释:如果在命令中不指定tag,则默认会下载标签为latest 的最新稳定版本镜像。

docker pull命令支持的选项主要包括:

-a, –all-tags :拉取所有 tagged 镜像
–disable-content-trust :跳过镜像校验阶段,默认为开启
-q, –quiet:静默输出

三. 查看镜像信息
在下载镜像后,我们可以通过 docker images或docker image ls 命令,查看本地已有镜像信息。

如:

Docker容器实战八:镜像管理命令

注释:REPOSITORY显示镜像来源于哪个仓库;TAG为镜像的标签信息,通常会使用TAG来区分镜像版本;IMAGE ID 为镜像的唯一标识ID;CREATED表示镜像创建时间;SIZE为镜像大小;

docker images命令主要的几个选项:

-a, –all : 显示包括临时镜像在内的所有镜像,默认为不显示;

-f, –filter filter: 根据条件过滤镜像;

 –no-trunc :是否对输出结果较长部分进行截断,true为是,false为否;

假如需要查看单个镜像的详细信息,可使用docker [image] inspect 命令,可看到镜像的启动命令、变量等更多配置信息。命令格式为:docker  [image] inspect  :。

如下:

Docker容器实战八:镜像管理命令

四. 删除镜像
在使用较长时间后,系统中往往会因为各种原因而下载了各式各样的镜像文件。对此,可以定期进行镜像清理,避免占用过多存储空间。

删除镜像可以使用docker rmi 或docker image rm命令,命令格式为docker rmi : 或 docker rmi 。

如:

Docker容器实战八:镜像管理命令

需要注意的是,如果有容器正在使用该镜像的话,那么镜像将无法删除,并且系统将会出现报错提示。

如:

Docker容器实战八:镜像管理命令

在这种情况下 ,虽然可以使用加 -f 参数的方式强制删除,但通常不建议这样操作。正确的做法是找到该容器,在确认不再使用后停止并删除,然后再进行镜像的清理。

对于镜像的清理 ,也可以使用docker image prune命令来操作。该命令的好处是不需要用户指定镜像,会自动清理所有未被使用的镜像。

命令支持以下参数:

  -a, –all             删除所有未使用镜像(默认只删除临时镜像)

  –filter filter       根据条件筛选镜像

  -f, –force          强制删除镜像

如下:

当清理完成后,命令会最后提示释放的空间。

Docker容器实战八:镜像管理命令
Docker容器实战八:镜像管理命令

五. 导出与存入镜像
在某些情况下,我们可能需要将机器中的镜像导出,作为备份保存起来,或者将其存入到另一台机器中使用。此时,我们可以使用Docker的镜像导出和存入命令。

1. 导出镜像

导出镜像的命令为docker [image] save,命令使用参数 -o指定导出镜像到文件中。

如:

Docker容器实战八:镜像管理命令

2. 存入镜像

在镜像导出后,可以通过网络或拷贝等方式文件同步到其他机器上。此时,使用docker [image] load命令即可将文件导入到该机器的镜像库中。

如:

Docker容器实战八:镜像管理命令

原创文章,作者:Zhu, Yuanyuan,如若转载,请注明出处:https://www.yidc.net/archives/18720