docker基础使用(一 )
获取镜像
docker pull NAME[:TAG]
- NAME : 是
仓库名称
, 用于区分镜像
- TAG : 是
镜像标签
, 通常用于表示版本信息
, 省略时,默认标签latest
, 获取最新版本 - 镜像描述 : 一般
NAME + TAG
才能完整描述一个镜像
注意
一般来讲, 不建议使用 latest
版本镜像, 因为此版本会跟踪最新版本内容, 但是可能 不稳定
, 所以在生产环境, 一定不要忽略 TAG 标签, 或者使用默认的 latest 标签.
获取镜像解析
- docker pull 指令执行时, 实际是从
docker.io
仓库拉取镜像 , 实际仓库地址docker.io/library/nginx:latest
, 若是我们相切换其他镜像源, 如 网易 的镜像源 则需要指定仓库地址docker pull hub.c.163.com/library/nginx:latest
- 下载过程可以看出, 镜像文件是由
若干层(layer)组成
, c229119241af 这样的串是层的唯一id
, 使用 docker pull 命令拉取镜像时, 会获取并输出镜像的各层信息。当不同的镜像包含相同的层时, 本地仅存储一份内容
, 减小需要的存储空间.
查看镜像信息
docker images
上述的命令可列出本地的全部镜像, 结果中包含以下信息:
来自那个仓库
: nginx保存nginx系列的基础景象镜像的标签信息
: latest、1.20、stable等就是镜像所对应的标签.标签只是标记, 并不能识别镜像的内容
镜像ID(唯一的镜像标识)
: 比如 nginx:stable 和 nginx:1.20 , 他们的镜像ID一致, 说明他们实际上指向同一个镜像, 只是 TAG 不同而已.创建时间
: 镜像最后更新的时间镜像大小
: 优秀的镜像, 在满足功能诉求的基础上, 体积一般都是越小越好
重要
镜像的ID信息 十分重要
, 它 唯一
标识了镜像. 在使用镜像ID的时候, 一般可以使用 前若干个字符组成的可区分字符串来替代完整的ID
TAG 信息用来标记来自同一个仓库的不同镜像, 例如 nginx仓库中就有多个镜像, 通过TAG信息来区分发行版本
镜像大小表示的知识 该镜像的逻辑体积大小
, 实际上, 由于 相同的镜像层,本地只会存储一份
, 物理上占用的存储空间 会小于
各镜像的 体积之和
. 如 nginx:stable = 141M nginx:1.20 = 141M , 他们两个由于是同一个镜像ID,实际是同一个镜像, 实际的磁盘存储 = 141M。
images支持的子命令
-a(--all=true|false)
: 列出所有镜像文件, 包含临时文件, 默认false
--digests=true|false
: 列出镜像的数字摘要值, 默认false
-f(--filter=[])
: 过滤列出的对象, 如 dangling=true只显示没有被使用的镜像; 也可以指定带有特定标注的对象等.--format="TEMPLATE"
: 控制输出格式, 如 .ID代表ID信息 , .Repository代表仓库信息等.--no-trunc=true|false
: 对输出结果中太长的部分是否进行截断, 如镜像ID信息, 默认为true
-q(--quiet=true|false)
: 仅输出ID信息, 默认为false
重要
对输出结果控制的选项如 -f、--filter=[]、--no-trunc=true|false、-q、--quiet=true|false等, 大部分子命令都支持.