ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker | docker实战(三):使用Docker镜像(读书笔记)

2020-03-01 09:05:30  阅读:253  来源: 互联网

标签:18.04 读书笔记 ID 命令 ubuntu 镜像 Docker docker


第三章 使用Docker镜像

3.1 获取镜像

  镜像是运行容器的前提, 官方的 Docker Hub 网站已经提供了数十万个镜像供大家开放下载。 本节主要介绍 pecker镜像的pull子命令。
   可以使用 docker [image] pull 命令直接从 Docker Hub 镜像源来下载镜像。 该命令的格式为

docker [image] pull NAME [ :TAG] 。

   其中,NAME是镜像仓库名称(用来区分镜像),TAG是镜像的标签(往往用来表示版本信息)。 通常情况下,描述一个镜像需要包括 “名称+标签“ 信息。
   例如, 获取一个Ubuntu 18.04 系统的基础镜像可以使用如下的命令:

docker pull ubuntu: 18.04.18.04: Pulling from library/ubuntu Digest:sha256:e27e9d7f7f28d67aa9e2d7540bdc2b33254b452ee8e60f388875e5b7d9b2b696 
Status: Downloaded newer image for ubuntu:18.04

  对于Docker镜像来说, 如果不显式指定TAG, 则默认会选择la迳釭标签,这会下载 仓库中最新版本的镜像。
  下面的例子将从DcoekrHub 的Ubuntu仓库 下载一个最新版本的Ubuntu操作系统的镜像: 在这里插入图片描述
该命令实际上下载的就是 ubuntu:latest镜像。
  下载过程中可以看出 ,镜像文件一般由若干层(layer)组成 ,6c953ac5d795这样的 串是层的唯一id(实际上完整的id包括256比特,64个十六进制字符组成)。使用docker pull命令下载中会获取并输出镜像的各层信息。当不同的镜像包括相同的层时,本地仅存 储了层的 一份内容,减小了存储空间。
  读者可能会想到,在不同的镜像仓库服务器的情况下,可能会出现镜像重名的情况。
   严格地讲,镜像的仓库名称中还应该添加仓库地址(即registry, 注册服务器)作为前缀,只是默认使用的是官方DockerHub服务 ,该前缀可以忽略。
  例如,docker pull ubuntu:18.04命令相当千docker pull registry.hub. docker.com/ubuntu:18.04命令,即从默认的注册服务器DcoekrHub Registry中的 ubuntu 仓库来下载标记为18.04的镜像。
  如果从非官方 的仓库下载,则 需要在仓库 名称前指定完整的仓库地址。例如从网易蜂巢 的镜像源来下载ubuntu:18.04镜像,可以使用如下命令,此时下载的镜像名称 为hub. c.163.com/public/ubuntu:18.04:

 docker pull hub.c.163.com/public/ubuntu:18.04 

pull 子命令支持的选项主要包括:

  • -a, --all士ags=trueifalse:是否获取仓库中的所有镜像,默认为否;
  • --disable-con七ent-trus七:取消镜像的内容校验,默认为真。

  另外,有 时需要使用镜像代理服务来加速Docker镜像获取 过程 ,可以在Docker服务 启动配置中增加 --registry-mirror=proxy_URL来指定镜像代理服务地址(如https:// registry.docker-en.com)
  下载镜像到本地后, 即可随时使用该镜像了, 例如利用该镜像创建一个容器,在其中运 行bash应用, 执行打印 "Hello World"命令:

docker run -it ubuntu:18.04 bash 

在这里插入图片描述

3.2 查看镜像信息

  本节主要介绍Docker镜像的ls、tag和inspect子命令。

  1. 使用images命令列出镜像
docker images 

在这里插入图片描述
在列出信息中, 可以看到几个字段信息:

  • 来自于哪个仓库, 比如ubuntu表示ubuntu 系列的基础镜像;
    SIZE 79.6MB 79.6MB
  • 镜像的标签信息, 比如 18.04、 latest表示不同的版本信息。 标签只是标记, 并不能标识镜像内容;
  • 镜像的ID(唯一标识镜像),如果两个镜像的ID相同,说明它们实际上指向了同一 个镜像, 只是具有不同标签名称而已;
  • 创建时间,说明镜像最后的更新时间;
  • 镜像大小,优秀的镜像往往体积都较小。

  其中镜像的ID信息十分重要, 它唯一标识了镜像。在使用镜像ID的时候, 一般可以使 用该ID的前若干个字符组成的可区分串来替代完整的ID。
  TAG 信息用于标记来自同一个仓库的不同镜像。 例如ubuntu 仓库中有多个镜像, 通过 TAG 信息来区分发行版本, 如18.04、 18.10 等。
  镜像大小信息只是表示了该镜像的逻辑体积大小, 实际上由于相同的镜像层本地只会存 储一份, 物理上占用的存储空间会小于各镜像逻辑体积之和。

images子命令主要支持如下选项

  • -a, --all =true I false: 列出所有(包括临时文件)镜像文件,默认为否;
  • --digests=true | false: 列出镜像的数字摘要值,默认为否;
  • -f, --filter=[] : 过滤列出的镜像,如dangling 式rue 只显示没有被使用的镜像;也可指定带有特定标注的镜像等;
  • --format=“TEMPLATE” : 控制输出格式,如. ID代表ID信息,.Repository 代表仓库信息等;
  • --no-trunc=true | false: 对输出结果中太长的部分是否进行截断,如镜像的ID 信息,默认为是;
  • -q, --quiet=true | false: 仅输出ID信息, 默认为否。
      其中, 还支持对输出结果进行控制的选项,如 -f. --fil七er=[)、–no七rune= 七rueI false、 -q、 --quie七式rueI false等。
      更多子命令选项还可以通过mandocker-images来查看。
  1. 使用tag命令添加镜像标签
    为了方便在后续工作中使用特定镜像,还可以使用docker tag命令来为本地镜像任 意添加新的标签。 例如,添加一个新的myubuntu: latest镜像标签:
docker tag ubuntu:latest myubuntu:latest

  再次使用docker images列出本地主机上镜像信息, 可以看到多了一个myubun口: lates七标签的镜像:
在这里插入图片描述
  之后,用户就可以直接使用myubuntu:la七es七来表示这个镜像了。
  细心的读者可能注意到, 这些myubuntu:latest镜像的ID跟ubunt:latest是 完全一致的,它们实际上指向了同一个镜像文件,只是别名不同而巳。docker tag命令添 加的标签实际上起到了类似链接的作用。

  1. 使用inspect命令查看详细信息
    使用 docker [image] inspect 命令可以获取该镜像的详细信息,包括制作者、适 应 架构、各层的数字摘要等:
    在这里插入图片描述
      上面代码返回的是一个 JSON 格式的消息, 如果我们只要其中一项内容时, 可以使 用 -f 来指定, 例如, 获取镜像的Architecture:
docker [image] inspec七 -f { {" .Architecture"}} ubuntu:18.04 

在这里插入图片描述

  1. 使用 history 命令查看镜像历史
      既然镜像文件由多个层组成, 那么怎么知道各个层的内容具体是什么呢?这时候可以使 用 history 子命令, 该命令将列出各层的创建信息。 例如,查看 ubuntu: 18. 04 镜像的创建过程,可以使用如下命令:
docker history ubuntu: 18. 04

在这里插入图片描述
  注意,过长的命令被自动截断了, 可以使用前面提到的 --no-trunc选项来输出完整命令。

@范恒宾 发布了35 篇原创文章 · 获赞 4 · 访问量 1028 私信 关注

标签:18.04,读书笔记,ID,命令,ubuntu,镜像,Docker,docker
来源: https://blog.csdn.net/qq_41980405/article/details/104586712

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有