【Docker】Docker学习笔记(二)Docker镜像

文章目录


#1 获取镜像

  • 命令:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

    • Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub。
    • 仓库名:仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
      #2 查看镜像
  • 列出镜像:docker image ls

    • 信息列表包含了仓库名、标签、镜像 ID、创建时间以及所占用的空间
    • 镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个标签
  • 虚悬镜像:由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image)

    • 显示:docker image ls -f dangling=true
    • 删除:docker image prune
  • 中间层镜像:是一种无标签镜像,是其它正在使用的镜像所依赖的镜像,不容有失

    • 查看命令:docker image ls -a
  • 列出部分镜像:

    • 根据仓库名列出镜像:docker image ls 仓库名
    • 列出特定的某个镜像:docker image ls 仓库名:标签
    • 过滤操作:
      • 之前:docker image ls -f before=仓库名:标签
      • 之后:docker image ls -f since=仓库名:标签
        #3 删除镜像
  • 命令:docker image rm [选项] <镜像1> [<镜像2> ...]

    • <镜像> 可以是 镜像短 ID、镜像长 ID、镜像名 或者 镜像摘要
    • 镜像的唯一标识是其 ID 和摘要,而一个镜像可以有多个标签
  • Docker镜像的删除过程:

    • 第一步:将满足要求的所有镜像标签都取消,这就是看到的 Untagged 信息
    • 第二步:确定是否还有不同的标签指向这个镜像,是的话就不能删除该镜像,仅仅实现了标签的移除,假如没有其它的标签指向该镜像,则可以删除镜像。
  • 复合命令:

    • docker image rm $(docker image ls -q 仓库名)
    • docker image rm $(docker image ls -q -f before=仓库名:标签)
      #4 定制镜像
      ##4.1 利用 commit 理解镜像构成
  • 不提倡使用commit定制镜像,用来理解镜像的构成:

    • 第一步:运行镜像,启动容器
    • 第二步:进入容器
    • 第三步:改动内容
    • 第四步:提交改动,保存容器为镜像
    • 第五步:查看镜像历史
      ##4.2 使用 Dockerfile 定制镜像
  • 镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,这个脚本就是 Dockerfile。

  • Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

  • 定制镜像,是以一个镜像为基础,在其上进行定制。而 FROM 就是指定基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。

    • Docker 还存在一个特殊的镜像,名为 scratch。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。如果你以 scratch 为基础镜像的话,意味着你不以任何镜像为基础,接下来所写的指令将作为镜像第一层开始存在。
  • RUN 指令是用来执行命令行命令的。由于命令行的强大能力,RUN 指令在定制镜像时是最常用的指令之一,其格式有两种:

    • shell 格式:RUN <命令>,就像直接在命令行中输入的命令一样。
    • exec 格式:RUN [“可执行文件”, “参数1”, “参数2”]
  • Dockerfile 中每一个指令都会建立一层,RUN 也不例外。每一个 RUN 的行为,新建立一层,在其上执行这些命令,执行结束后,commit 这一层的修改,构成新的镜像。

  • 构建镜像:docker build [选项] <上下文路径/URL/->

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值