Docker(一) -- 镜像Images

一:简要概述

Docker目前主流虚拟容器化技术代表,吹逼不会Docker那简直就像是疯狂原始人,太LOW!!认识使用Docker没必要理解那些晦涩的概念,随着使用深入领悟它的好处就够了。Docker生态中接触最多的其实就是Docker Engine,典型的C/S架构。包括后续文章将会分析的四大组件镜像、容器、网络、数据卷都属于Docker daemon管理,命令交互都属于Docker cli部分,Docker daemon与Docker cli组成Docker Engine
在这里插入图片描述

二:镜像简介

镜像是整个Docker生态的基础,可以将其理解为应用程序及其相关依赖的基础文件系统,文件中定义了整个应用与其相关依赖的数据信息等

2.1 镜像层

Docker利用AUFS作为底层的文件系统实现,其最重要的一个特点就是增量式镜像文件结构。每次Docker都会把修改的部分作为一个镜像层,所有镜像层及其以下的镜像层都可以组成一个完整的应用镜像
在这里插入图片描述

2.2 编码与共享

每个镜像层都有64位的唯一哈希编码,这就给镜像层共用创造了条件。比如ZK的镜像与RabbitMQ镜像都需要JDK镜像层,当ZK镜像拉取后再拉取MQ镜像时发现JDK镜像层已经具备,这时候会共用,而不是再拉取一份。镜像层的共用达到 1 + 1 < 2的效果,当然删除镜像时也不会删除共用镜像层
在这里插入图片描述

三:镜像运用

3.1 镜像仓库

Java中使用Maven管理依赖会有Maven仓库,Docker中使用镜像当然会有镜像仓库。Maven的中央仓库国内用起来基本是痛苦不堪,Docker的镜像仓库同理,所以在操作前咱配置国内的镜像仓库

// daemon.json文件不存在则创建
vim /etc/docker/daemon.json
// 增加如下配置
{
    "registry-mirrors": [
        "https://registry.docker-cn.com",
        "https://w9o4etz3.mirror.aliyuncs.com"
    ]
}
// 保存后重启
systemctl restart docker
// 查看镜像源
docker info

在这里插入图片描述

3.2 镜像命名

首先本地镜像可以通过命令docker images查看
在这里插入图片描述

  • REPOSITORY描述镜像内容,很多时候采用镜像应用名称进行命名
  • TAG理解为标签即可,描述版本亦或是某个应用中部分功能
  • IMAGE ID唯一标识,前面说是32位哈希码,但是为了方便展示看截取前12位
  • CREATED创建时间
  • SIZE内存大小
 命名规则为:namespace/REPOSITORY:TAG(其中namespace可以省略,用于描述镜像提供维护者)

某个镜像的名称不是很符合要求怎么办?镜像命名的修改涉及到如下命令:注意这样操作的时候是生成一个新的镜像

docker tag 修改名称镜像 镜像修改后的名称

在这里插入图片描述

3.3 镜像查询与拉取

比如我想从仓库拉取一个Rdis镜像,查询存在的镜像实例可以用如下命令:其中STARS表示热度/关注度、OFFICIAL表示官方维护镜像,仔细看看他的命名,除了官方维护的镜像之外其余的命名规则都符合上一小节所述

// 查询仓库镜像
docker search redis

在这里插入图片描述
仓库中镜像拉取到本地使用命令docker pull ,这个命令使用的时候需要注意,如果这时候不指定版本则默认拉取官方维护的latest最新版本,当然如果有特殊情况,则需要完整的镜像名称定位。如下图所示,确实可以看到是一层一层镜像组成拉取
在这里插入图片描述

3.4 镜像删除

镜像删除的命令就是docker rmi比较简单,但是命令参数却是这节重点。docker中每个镜像、容器都有唯一标识的32位哈希码,但是为了方便直接展示12位。所以在操作镜像亦或是容器时不仅仅可以使用它们的名称,并且还可以使用它们的ID。那你说12位的ID输入不是很麻烦么,但是记住,只要你输入的ID可以确定唯一镜像或是容器即可,不需要完整
在这里插入图片描述

3.5 镜像详情

docker images命令罗列的都是比较表面的信息,如果想查看镜像内部的一些信息可以使用docker inspect,当然这个命令不仅仅是对镜像有效,对所有Docker中的对象都是有效的,如容器等

3.6 保存 / 加载 镜像

Docker中的所有镜像都是交给Docker进行管理,分布式环境部署时常涉及到节点迁移工作,此时即可将镜像保存到本地,方便将镜像直接迁移到另外服务器的Docker环境

// 镜像名称可以多个,批量迁移
docker save -o 保存镜像路径 镜像名称

在这里插入图片描述
上述步骤之后的镜像已经保存到本地,此时可以测试使用本机将其加载到Docker环境中

docker load -i 镜像打包的本地tar包

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章