docker 镜像管理

docker 镜像管理

镜像基础操作

镜像概念

Image

IT 领域,镜像通常是指一系列文件或一个磁盘驱动器的精确副本,和 ZIP 压缩文件类似

  • Ghost 镜像:以前经常装 PC 电脑上用的经典软件,虽然我重来不用,我更喜欢用微软原生的那种镜像
  • 在云环境下,一些企业大大小小都有自己的硬件服务器(这里说的是实体物理机),我们在物理上面一般会做虚拟化操作,这时候的镜像其实就是一个虚拟机模块,我们在虚拟化平台上通过镜像来安装虚拟机
  • 与之类似的,Docker 镜像就是用来创建 Docker 容器的只读模板,它是一个特殊的文件系统,不包含任何动态数据,其内容在构建之后再也不会改变,是创建容器的基础

认识镜像

docker images 列出当前 Docker 主机所拥有的镜像列表

在这里插入图片描述

  • 镜像的名称(REPOSITORY+TAG):镜像 ID 能够保证镜像的唯一性,但是不便于记忆,可以使用镜像名称进行操作
  • 镜像的摘要信息(REPOSITORY@摘要值)

在这里插入图片描述

Dockerfile

Dockerfile

默认使用 Dockerfile 文件来描述镜像,Docker 引擎通过读取文件中的指令自动构建镜像

官方示例:

FROM scratch		# 定义基础镜像
COPY hello /		# 将本机目录所在的文件复制到镜像文件系统的根目录
CMD ["/hello"]		# 通过镜像来启动容器时执行的命令

基础镜像与父镜像

  • 父镜像(parent image) 镜像的 Dockerfile 文件中 FROM 指令指定的镜像
  • 基础镜像(base image)镜像的 Dockerfile 文件中没有 FROM 指令或 FROM 指令的值是 scratch (空白镜像) 所构成的镜像
  • 大多数镜像都是从父镜像开始构建

分层结构

传统镜像分层

  • 通过联合文件系统,将处于不同层的1、2、3文件叠加在一起,呈现一个完整的文件系统
  • 便于修改,哪层有问题,不需要修改整个镜像,只需要修改该层的镜像
  • 共享同一个底层镜像,内存也只加载同一个底层镜像,不同镜像的相同部分作为一个独立的镜像层,节省磁盘空间
  • AUFS 是联合文件系统的经典实现,采用了文件的 【写时拷贝】技术
  • 也有一些缺点:
    • 镜像的层数会越来越多?联合文件系统的层数是有一定的限制
    • 许多上层的应用基于相同的底层镜像,如果底层镜像需要修改,维护工作量较大
    • 无法对镜像进行审计,不知道如何创建出来,谁创建的

基于Dockerfile的镜像分层

  • 每一层由镜像的 Dockerfile 指令决定的
  • 除了最后一层,每一层都是只读的

在这里插入图片描述

镜像基本操作

拉取镜像

docker pull <镜像>

  • 本地拉取一个不存在的镜像的时候,会自动去根据镜像名称下载这个镜像,如果不带镜像地址,默认就会从官方的注册中心拉取
  • 如果没有镜像地址,默认拉取官方镜像仓库地址:docker.io(镜像地址)+library(命名空间)+busybox(镜像名称)+镜像标签

在这里插入图片描述

显示镜像列表

命令 说明
docker image ls 显示本地镜像列表
docker images 显示本地镜像列表
docker images -a 显示所有镜像
docker images --no-trunc 显示完整的镜像信息
docker images -q 只显示镜像的ID
docker images --digests 显示镜像的摘要值等信息
docker images centos 基于具体的镜像标识来显示镜像信息
docker images -f dangling=true 显示没有TAG的镜像信息

设置镜像标签

docker tag 源镜像的标识 目标镜像的标识:也就是个镜像重命名一下,不影响原来的镜像

命令 说明
docker tag busybox:latest demo:v1 给镜像重新打上标签
docker tag df8662dadd4f demo:v2 通过镜像ID重新打上标签

查看镜像详情

docker inspect <镜像标识>

命令 说明
docker inspect 9211bbaa0dbd 通过镜像ID查看镜像的详细信息
docker inspect centos:7 通过镜像名称查看镜像的详细信息
docker inspect --format=‘{ {.Architecture}}’ 9211bbaa0dbd 可以指定格式显示(感觉不好用)

查看镜像构建历史

docker history <镜像标识>

命令 说明
docker history centos:7 查看镜像构建历史
docker history centos:7 --no-trunc 查看镜像构建历史饼显示完整的操作命令(显示不够友好)
docker history centos:7 -H=false 镜像大小和构建时间格式输出,更具体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值