跳转至

17.3.Image

完整的镜像表示分三部分,用 / 分隔:

hub/namespace/name:tag
  • hub:Docker Hub地址
  • namespace:命名空间,表示一个用户或组织下的所有镜像
  • name:镜像名称
  • tag:镜像标签

如果从Docker官方仓库拉取镜像,可以省略hub/namespace

获取镜像

使用 docker pull 命令下载镜像。如果不指定tag,默认选择latest标签。

docker pull python:3.7-slim
docker image pull python:3.7-slim

pull命令完整用法如下:

Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Pull an image or a repository from a registry

Options:
  -a, --all-tags                Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --platform string         Set platform if server is multi-platform capable
  -q, --quiet                   Suppress verbose output

查看本地镜像

docker images
docker image ls
# 列出全部镜像,包括隐藏的镜像
docker images -a
docker image ls -a

给镜像打标签

使用 docker tag 命令来给本地镜像添加新的标签。

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

也可以用image ID代替source image name。

搜索Hub镜像

使用 docker search 命令来搜索Hub的镜像。

docker search python

创建镜像

创建镜像有三种方式:

  1. 将已有的container保存为image
  2. 基于 Dockerfile 创建
  3. 基于本地模板导入
# 将已有的container保存为image
docker commit -a 'Author' -m 'Commit message' container_ID image_name:tag
# 基于本地模板导入
docker import
# docker image build -t image_name:tag .

删除镜像

使用 docker rmi 命令来删除镜像,分两种方式:一种是通过镜像名和标签来删除;一种是通过镜像 ID 来删除。平时使用过程中,大部分都是通过镜像 ID 来删除。

docker rmi image_name:tag
docker rmi image_id
docker image rmi
# 强制删除
docker --force rmi

清理镜像

# 删除没有使用的镜像
docker image prune

导出镜像

docker save -o python.tar python:3.7-slim
docker image save

导入镜像

docker load -i python.tar
docker load < python.tar
docker image load

上传镜像

# 默认上传至Docker Hub官方仓库
docker push image_name:tag
docker image push image:tag
# 上传至指定的hub仓库
## 需要先将 hub/image_name:tag 作为镜像的标签
## 而且还要使用docker login命令登录 hub
docker push hub/image_name:tag

查看镜像的详细信息

docker history 
docker inspect
docker image history 
docker image inspect