自学docker必备的课程笔记,b站上看到动力节点的docker视频教程,搬运了相关学习笔记,按照章节整理分享给需要的朋友们~
课程学习地址:https://www.bilibili.com/video/BV1sb411X7oe
3 Docker镜像
3.1 镜像基础
3.1.1 镜像简介
镜像是一种轻量级、可执行的独立软件包,也可以说是一个精简的操作系统。镜像中包含应用软件及应用软件的运行环境。具体来说镜像包含运行某个软件所需的所有内容,包括代码、库、环境变量和配置文件等。几乎所有应用,直接打包为Docker镜像后就可以运行。
由于镜像的运行时是容器,容器的设计初衷就是快速和小巧,所以镜像通常都比较小,镜像中不包含内核,其共享宿主机的内核;镜像中只包含简单的Shell,或没有Shell。
3.1.2 镜像仓库分类
镜像中心中存储着大量的镜像仓库Image Repository,每个镜像仓库中包含着大量相关镜像。根据这些镜像发布者的不同,形成了四类不同的镜像仓库。
3.1.2.1 Docker Official Image
Docker官方镜像仓库。该类仓库中的镜像由Docker官方构建发布,代码质量较高且安全,有较完善的文档。该类仓库中的镜像会及时更新。一般常用的系统、工具软件、中间件都有相应的官方镜像仓库。例如,Zookeeper、Redis、Nginx等。
官方镜像仓库的名称一般直接为该类软件的名称。
3.1.2.2 Verified Publisher
已验证发布者仓库。该类仓库中的镜像由非Docker官方的第三方发布。但该第三方是由Docker公司审核认证过的,一般为大型企业、团体或组织。审核通过后,Docker公司会向其颁发“VERIFIED PUBLISHER”标识。这种仓库中镜像的质量还有有保证的。
除了官方镜像仓库,其它都是非官方镜像仓库。非官方镜像仓库名称一般由发布者用户名与软件名称两部分构成,形式为:/。
3.1.2.3 Sponsored OSS
由Docker公司赞助开发的镜像仓库。该类仓库中的镜像也由非Docker官方的第三方发布,但该镜像的开发是由Docker公司赞助的。该类型的第三方一般为个人、团队或组织。这种仓库中镜像的质量也是有保证的。
3.1.2.4 无认证仓库
没有以上任何标识的仓库。这种仓库中镜像的质量良莠不齐,质量上无法保证,在使用时需谨慎。
3.1.3 第三方镜像中心
镜像中心默认使用的都是Docker官方的Docker Hub。不过,镜像中心是可配置的,可以使用指定的第三方镜像中心。对于第三方镜像中心中的仓库名称由三部分构成://。其中的< domain-name >指的是第三方镜像中心的域名或IP。
3.1.4 镜像定位
对于任何镜像,都可通过:进行唯一定位。其中一般称为镜像的版本号。中有一个比较特殊的版本——latest。如果不指定,默认即为latest。不过,虽然其字面意思是最新版,一般其也的确存放的是最新版,但并不能保证其真的就是最新版。
3.2 镜像相关命令
3.2.1 docker pull
3.2.1.1 基本用法
通过docker pull命令可以将指定的镜像从docker hub拉取到本地。如果没有指定镜像则会抛出一个Error。例如,下面的命令是拉取zookeeper的3.7.1版本镜像。
pull命令中的也可以不写,此时默认的为latest。
此时可以查看到,当前宿主机中已经包含了刚刚下载的两个zookeeper镜像。
3.2.1.2 简化日志输出
加上选项-q后就可简化拉取过程中的日志输出。
3.2.1.3 通过digest拉取
docker pull可通过镜像的digest进行拉取。语法格式为docker pull @。
| digest,是镜像内容的一个Hash值,即所谓的Content Hash(内容散列)。只要镜像内容发生了变更,其内容散列值就一定会发生改变。注意,digest是包含前面的sha256的,表示该digest的产生所采用的Hash算法是SHA256。
使用该拉取方式的具体场景或用途,后面会详解。 |
---|
从Docker Hub中具体镜像中可查看到其digest。
3.2.2 docker images
3.2.2.1 基础用法
通过docker images