Docker 镜像操作

一、Docker 镜像概述

Docker 镜像是一个只读的模板,用于创建 Docker 容器。镜像可以包含一个基本的操作系统环境,并预装所需的应用程序(如 Apache、Nginx 等)。镜像是容器的基础,Docker 通过分层存储版本管理机制,使得镜像的创建、共享和更新变得简单高效。

用户可以从 Docker Hub 或其他镜像仓库下载已有的镜像,也可以基于现有镜像构建自定义镜像。

二、Docker 镜像操作

1、列出镜像

可以使用docker images来列出本地主机上的镜像

[root@docker ~]# docker images

在这里插入图片描述

输出列说明:

  • REPOSITORY:镜像仓库源
  • TAG:镜像标签(版本)
  • IMAGE ID:镜像唯一标识
  • CREATED:创建时间
  • SIZE:镜像大小
2、搜索镜像

可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/

search 命令来搜索镜像,比如我们需要一个 httpd 的镜像,我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像

如果使用不了,深呼吸,是正常的

[root@docker ~]# docker images

输出列说明:

  • NAME:镜像名称
  • DESCRIPTION:描述
  • STARS:点赞数
  • OFFICIAL:是否官方发布
  • AUTOMATED:是否自动构建
3、获取镜像

当我们在本地主机上使用一个不存在的镜像时,Docker 就会自动下载这个镜像

如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它

而镜像可以通过 Docker Hub 官方获取,或者通过国内的阿里云、DaoCloud 等厂商所提供的镜像仓库下

[root@docker ~]# docker pull httpd

在这里插入图片描述

4、添加镜像标签

为了方便在后续工作中使用特定镜像,可以使用docker tag命令来作为本地镜像任意添加新的标签

[root@docker ~]# docker tag httpd:latest yyhttp:latest

在这里插入图片描述

5、查看镜像构建历史

可以使用docker history查看镜像的构建历史信息

在使用docker时经常会自己构建一些我们所需要的镜像,所以要会查看镜像的构建信息

[root@docker ~]# docker history httpd

在这里插入图片描述

6、删除镜像

可以使用docker rmi或者docker image rm将我们用不到的镜像删除

通过镜像名删除

删除镜像时,后面接镜像名称

[root@docker ~]# docker rmi httpd

在这里插入图片描述

通过镜像 ID 删除

删除镜像时,后面接镜像ID

如果该镜像没有被打标签,可直接删除

[root@docker ~]# docker rmi 65005131d37e

在这里插入图片描述

强制删除

用于有多个标签的镜像

如果该镜像被重新打了标签,是无法删除的,

[root@docker ~]# docker rmi -f 65005131d37e

在这里插入图片描述

7、清理无用镜像

使用docker一段时间后,系统可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像

可以通过docker image prune命令来进行清理

-a,-all:删除所有无用的镜像,不仅仅是临时镜像

-f,-force:强制删除镜像,而不进行提示确认

[root@docker ~]# docker image prune -f
Total reclaimed space: 0B

如上命令会自动清理临时的遗留镜像文件层,最后会提示释放的存储空间

8、导出镜像

可以使用docker image save将一个镜像导出到一个压缩包中,便于在其他主机上运行

[root@docker ~]# docker image save httpd > httpd.tar.gz

在这里插入图片描述

9、导入镜像

可以使用docker image load导入我们需要的镜像压缩包

为了实验效果,首先我们把之前的httpd镜像删除

[root@docker ~]# docker image load -i httpd.tar.gz

在这里插入图片描述

10、查看镜像详细信息

使用 docker [image] inspect 命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等

如果我们只要其中一项内容时,可以使用-f 来指定

[root@docker ~]# docker image inspect -f "{{.Architecture}}" httpd:latest
[root@docker ~]# docker image inspect -f "{{.Os}}" httpd:latest
[root@docker ~]# docker image inspect -f "{{.Size}}" httpd:latest

在这里插入图片描述

三、总结

  1. 使用的镜像如果在本地中不存在,使用docker pull自动从Docker镜像仓库中下载
  2. 我们可以使用docker search命令从Docker Hub网站来搜索镜像
  3. docker tag命令添加的标签镜像,它们的镜像ID是一致的,类似链接的作用
  4. 可以使用docker rmi或者docker image rm将我们用不到的镜像删除,如果镜像被使用,那么无法删除镜像。删除的镜像可以是镜像名称标签或者是镜像ID
  5. 如果该镜像被重新打了标签,是无法删除的,那么想一并删除该镜像和此镜像设置的标签后的镜像,可在后面跟-f选项,该选项是强制的意思
  6. 使用docker一段时间后,系统可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像,可以通过docker image prune命令来进行清理
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐