前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Docker-番外篇之上传镜像

Docker-番外篇之上传镜像

作者头像
运维小路
发布2024-12-19 21:33:23
发布2024-12-19 21:33:23
6500
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师。下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们在上一章,讲了虚拟化,虚拟化是把硬件虚拟化,然后创建出来的虚拟机完全隔离,而Docker则是软件(内核)虚拟化,他的隔离性会低于虚拟机。我们将通过3-4周来讲解Docker相关内容,由于涉及到内容较多,就不一一列出来具体的细节,主要从以下几个方面来讲解:

Docker基本情况

Docker基本命令

Dockerfile

Docker镜像

Docker仓库

Docker原理

Docker网络&存储&日志

Docker-Compose

Docker番外篇(本小节属于)

上一小节我们介绍了docker在下载镜像的时候做了什么,今天我们讲讲在docker上传的时候做了什么。

本小节的知识,如果是本地存储,在实际运维中并没有什么用。但是如果你使仓库是的是对象存储,理解这个逻辑就是很有用的,这个也是生产经验。

我们在运行docker仓库的时候,是做了持久化的数据的,我们现在去看看持久化目录里面的内容是什么?

代码语言:javascript
代码运行次数:0
复制
#容器内执行,未上传镜像的时候里面内容都是空的
/ # cd /var/lib/registry/
/var/lib/registry # ls
/var/lib/registry # 
代码语言:javascript
代码运行次数:0
复制
#上传一个镜像
[root@localhost ~]# docker push 192.168.31.205:5000/centos:7
The push refers to a repository [192.168.31.205:5000/centos]
174f56854903: Pushed 
7: digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f size: 529
代码语言:javascript
代码运行次数:0
复制
#宿主机执行,上传完成一个镜像的目录情况,
[root@localhost opt]# tree -L 5
.
└── docker
    └── registry
        └── v2
            ├── blobs
            │   └── sha256
            └── repositories
                └── centos

7 directories, 0 files

blobs :用于实际存储镜像文件,实际hash打散的二进制文件。当然下图是存在 很多镜像才会出现的这么多目录。

repositories :镜像的元数据目录,第一层目录镜像名字或者目录。当前只有centos是因为只有一个centos镜像,如果有多个镜像,则会出现多个目录。如果是多层目录,则下面还有曾经目录。centos目录下的其他目录包括_layers信息,_manifests信息元数据,而_upload则是上传的临时目录。

代码语言:javascript
代码运行次数:0
复制
[root@localhost opt]# cd docker/registry/v2/repositories/
[root@localhost repositories]# ls
centos
[root@localhost repositories]# cd centos/
[root@localhost centos]# ls
_layers  _manifests  _uploads
[root@localhost centos]# 

上图上传镜像的过程中,数据在_upload目录,上传完成以后数据到了blobs目录。

下图是上传过程中的临时目录,最后消失的目录情况。

这个数据目录转换的过程其实就是使用对象存储容易出现问题的地方。因为在Linux分区里面,移动文件或者目录,实际上只是改变一个inode,速度快到我们感知不到,因为不会真实移动数据。但是在对象存储里面是没有这个概念的,在对象存储里面只有对象,对象只能被上传/删除/修改,没有移动的操作。由于这个问题我还没弄出来,主要是目前公有云的对象存储在这个问题上支持并不好,后期来补上这个细节问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档