Docker 核心技术之镜像

时间:2021-04-30 04:59:24

镜像简介

镜像是一个Docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件等。

通过镜像可以创建一个或多个容器。

Docker 核心技术之镜像

镜像搜索 - docker search

作用:

  • 搜索Docker Hub(镜像仓库)上的镜像

命令格式:

  • docker search [OPTIONS] TERM

命令参数(OPTIONS):

  • -f, --filter filter 根据提供的格式筛选结果
  • --format string 利用Go语言的format格式化输出结果
  • --limit int 展示最大的结果数,默认25个 --no-trunc 内容全部显示
docker search centos

  

Docker 核心技术之镜像

只搜索官方的 centos

docker search -f is-official=true centos

Docker 核心技术之镜像

镜像下载 docker pull

作用:

  • 下载远程仓库(如Docker Hub)中的镜像

命令格式:

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

命令参数(OPTIONS):

  • -a, --all-tags 下载所有符合给定tag的镜像

查看用法

docker pull -h

  

Docker 核心技术之镜像

下载一个 ubuntu 的镜像

docker pull ubuntu

  

Docker 核心技术之镜像

默认下载的是最新的(latest)也可以指定tag去下载 如:ubuntu:16.04

镜像查看 docker images  或  docker image ls

docker images

  

Docker 核心技术之镜像

只查看 ubuntu 的镜像

docker images ubuntu

  

Docker 核心技术之镜像

列出 cent 开头的镜像

docker images cent*

  

Docker 核心技术之镜像

列出 ubun开头的镜像

docker images ubun

  

Docker 核心技术之镜像

可以看到没有找到,这是因为,在我们的本地有2个ubuntu ,这个模糊匹配功能好像只允许找一个,所以我们要加上一些条件

docker images ubun*:16.04

  

Docker 核心技术之镜像

镜像删除 docker rmi / docker rm

作用:

  • 将本地的一个或多个镜像删除

命令格式:

  • docker rmi [OPTIONS] IMAGE [IMAGE...]
  • docker image rm [OPTIONS] IMAGE [IMAGE...]

命令参数(OPTIONS):

  • -f, --force 强制删除

根据 name 进行删除

docker rmi ubuntu
docker images

  

Docker 核心技术之镜像

根据 IMAGE ID 进行删除 (这个可以不用写全,但要保证唯一)

 docker rmi 9f3

  

镜像保存备份  

作用:

  • 将本地的一个或多个镜像打包保存成本地tar文件(输出到STDOUT)

命令格式:

  • docker save [OPTIONS] IMAGE [IMAGE...]

命令参数(OPTIONS):

  • -o / >, --output string 指定写入的文件名和路径
docker save ubuntu:16.04  94e814 -o linux.tar

ls

  

Docker 核心技术之镜像

镜像备份导入 - docker load

作用:

  • 将save命令打包的镜像导入本地镜像库中

命令格式:

  • docker load [OPTIONS]

命令参数(OPTIONS):

  • -i, --input string 指定要打入的文件,如没有指定,默认是STDIN
  • -q, --quiet 不打印导入过程信息
docker load -i linux.tar
docker images

  

Docker 核心技术之镜像

在上面我们可以看到 ubuntu 18.04 的镜像 name 和 tag 都为none 这是因为我们在打包的时候,是按iamge id 进行打包的,如下

docker save ubuntu:16.04  94e814 -o linux.tar

  

所以在打包的时候尽量要用name 和 tag

镜像重命名 – docker tag

作用:

  • 对本地镜像的NAME、TAG进行重命名,并新产生一个命名后镜像

命令格式:

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

命令参数

  • (OPTIONS): 无
docker tag 94e ubuntu:18.04

  

Docker 核心技术之镜像

镜像详细信息 – docker image inspect/docker inspect

作用:

  • 查看本地一个或多个镜像的详细信息

命令格式:

  • docker image inspect [OPTIONS] IMAGE [IMAGE...]
  • 或者 docker inspect [OPTIONS] IMAGE [IMAGE...]

命令参数(OPTIONS):

  • -f, --format string 利用特定Go语言的format格式输出结果
docker image inspect ubuntu:18.04

  

Docker 核心技术之镜像

docker image inspect -f "{{ json .Id  }}" ubuntu:18.04

  

Docker 核心技术之镜像

docker image inspect -f "{{ json .GraphDriver.Data  }}" ubuntu:18.04

  

Docker 核心技术之镜像

镜像历史信息 – docker history

作用:

  • 查看本地一个镜像的历史(历史分层)信息

命令格式:

  • docker history [OPTIONS] IMAGE

命令参数(OPTIONS):

  • -H, --human 将创建时间、大小进行优化打印(默认为true)
  • -q, --quiet 只显示镜像ID --no-trunc 不缩略显示
docker history ubuntu:18.04

  

Docker 核心技术之镜像