第三章、Docker 镜像操作

Docker 的镜像是 Docker 容器的核心,Docker 的镜像必须在本地才能运行 Docker 容器。

Docker 镜像的获取方法:

  1. 从 Docker 镜像仓库下载
  2. 从镜像的压缩tar 包中导入镜像。
  3. 自己制作镜像

常用的 Docker 镜像相关的命令有如下几种:

功能
命令
列出本地镜像
docker imagesdocker image ls
下载镜像
docker pull <镜像名:标签>
从 Docker Hub 搜索镜像
docker search <关键词>
从文件导入镜像
docker load -i <tar包文件路径名>
导出镜像为文件
docker save -o <文件名.tar> <镜像名:标签>
删除镜像
docker rmi <镜像ID或名称>docker image rm <镜像ID或名称>
清理无用镜像
docker image prune
查看镜像详情
docker inspect <镜像ID或名称>
查看镜像历史
docker history <镜像名>
通过 Dockerfile 创建镜像
docker build -t <镜像名:标签> <上下文路径>
从容器创建新镜像
docker commit <容器ID> <新镜像名:标签>
镜像标签管理(打标签)
docker tag <原镜像名> <新镜像名:标签>
查看镜像磁盘占用
docker system df

因为 Docker 是运行在 root 下的服务。因此在执行上述命令式经常要使用 sudo 进行操作。

1. 列出本地镜像

查看本地 Docker 镜像可以使用 如下命令进行:

sudo docker images

也可以使用 docker images 命令的别名 docker image lsdocker image list 代替 docker images

示例

weimingze@mzstudio:~$ sudo docker images;
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    edbdd97bf78b   2 months ago   859MB
ubuntu       24.04     602eb6fb314b   2 months ago   78.1MB

上述列出了所有的本地 Docker 镜像,每一列内容如下:

docker image 命令的常用选项

选项
说明
-a--all
显示所有镜像,默认不显示中间层镜像。
-q
仅显示镜像的 ID 列表(常用于批量删除镜像)。
--no-trunc
显示全部信息,不截断 IMAGE ID

使用 docker images --help 可以查看 docker images 子命令的所有选项。后续所有子命令选项查询方法相同。

示例

weimingze@mzstudio:~$ sudo docker images -a
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    edbdd97bf78b   2 months ago   859MB
ubuntu       24.04     602eb6fb314b   2 months ago   78.1MB
weimingze@mzstudio:~$ sudo docker images -q
edbdd97bf78b
602eb6fb314b
weimingze@mzstudio:~$ sudo docker images --no-trunc
REPOSITORY   TAG       IMAGE ID                                                                  CREATED        SIZE
mysql        latest    sha256:edbdd97bf78b4338bbb96fa1348c8743a328b97ea3290b20adcab25bc17637de   2 months ago   859MB
ubuntu       24.04     sha256:602eb6fb314b5fafad376a32ab55194e535e533dec6552f82b70d7ac0e554b1c   2 months ago   78.1MB