小白都能懂的 玩转docker系列之 镜像原理以及分层理解

Docker镜像是什么?
镜像是一种轻量级,可执行的软件包,所有的应用,直接打包docker镜像,可以直接跑起来

得到镜像三种方式:
从远程仓库下载
朋友拷贝
自己通过DockerFile制作一个镜像

Docker 镜像加载原理
UnionFS(联合文件系统),支持对文件系统的修改,作为一次提交一层层增加
我们下载的时候,是一层层下载,比如要下载mysql和tomcat,两个都需要下载centos,如果mysql下载了centos,tomcat就不用再下载了,是公用的,不用重复下载

UnionFS包含两个,
一个是bootfs,系统启动需要引导加载kernel,电脑从黑屏到开机,这段时间就是加载,都是需要的;
另外一个是rootfs,在bootos之上,是linux中典型的/dev,/proc,/bin等标准目录和文件,rootfs就是各种不同操作系统的发行源

虚拟机是分钟级别的,容器是秒级的

再说一下镜像原理分层的理解
去下载一个镜像发现,是在一层层的下载
在这里插入图片描述
查看镜像分层的方式可以通过docker image inspect命令

[root@xiaoxiao ~]# docker image inspect redis:latest
[
    {
       #前面省略
       "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:d0f104dc0a1f9c744b65b23b3fd4d4d3236b4656e67f776fe13f8ad8423b955c",
                "sha256:09b6608896c0a00497d9e9c1b045f0c906203555740dee64473db943244059c2",
                "sha256:ab0653e928a7c1d4b2f1c8e527d735aa0ea8dcb8c50e7cefc7680cf09cf6f985",
                "sha256:57094a432b39be6fc8a3f533567e10c354705eec37e4f7a8b5a7041a4ec63fa2",
                "sha256:1b80269d908f58520f9f3f00d75e65907eafa0f5143d5fe2b6cafcc30b32bc83",
                "sha256:1bd654b55bb49880160a60ad3a75c4b14254656229d535e943d8fb88124f6177"
            ]
        }

layers里面就是分的层

Docker的镜像都是只读的,一个新的可写层被加载到镜像的顶部,这一层是我们通常说的容器层,容器之下的都是镜像层
比如下载一个tomcat镜像,这个镜像处于镜像层,下载完之后通过run命令进行运行,就会在容器层进行操作~
好了,今天就先到这里了,也欢迎关注我的B站老师狂神~

猜你喜欢

转载自blog.csdn.net/weixin_45806131/article/details/108333725