您当前的位置: 首页 >  docker

Bulut0907

暂无认证

  • 1浏览

    0关注

    346博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Docker镜像详解

Bulut0907 发布时间:2022-05-13 10:29:02 ,浏览量:1

目录
  • 1. UnionFS联合文件系统
  • 2. Docker镜像加载原理
  • 3. 镜像分层的好处
  • 4. docker commit-从容器生成新镜像

1. UnionFS联合文件系统

联合文件系统是一种分层、轻量级并且高性能的文件系统,是docker镜像的基础,可以将不同目录挂载到同一个虚拟文件系统下

可以基于基础镜像(没有父镜像)进行修改,每一次对文件系统的修改都是在继承父镜像,叠加成一个新的文件系统。最后多个文件系统联合形成一个新的镜像

联合文件系统将镜像的各层文件系统叠加起来,对外是一个文件系统,包含所有的底层文件和目录

2. Docker镜像加载原理

bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引导加载kernel。不同的操作系统发行版的bootfs基本是一样的。镜像层是只读的

和Linxu一样,Docker从镜像启动容器时,会加载最底层的bootfs引导文件系统。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统会卸载bootfs

rootfs(root file system),在bootfs之上。包含的就是典型Linux系统中的/dev、/proc、/bin、/etc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等。容器层是可读可写的

镜像加载

3. 镜像分层的好处

继承:新的镜像是继承父镜像而来的,所有镜像都是从base镜像来的 磁盘储存和内存加载:多个镜像继承同一个父镜像,父镜像(如base镜像)在Docker Host上保存一份,且加载时也只加载一份到内存中

4. docker commit-从容器生成新镜像

docker commit将容器,包括容器中我们自己编写的文件,打包成一个新的镜像。再使用此镜像启动一个新的容器,还会有我们自己编写的文件

[root@docker ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
redis             latest    7614ae9453d1   4 months ago    113MB
hello-world       latest    feb5d9fea6a5   7 months ago    13.3kB
centos            latest    5d0da3dc9764   7 months ago    231MB
[root@docker ~]# 
[root@docker ~]# docker commit -m "docker commit描述" -a="docker commit作者" 471be286443a bulut/my-centos:8.8
sha256:c1ba58473199c5818a845c6361df352350ba74b1e8955f249535c55a27a9db77
[root@docker ~]# 
[root@docker ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
bulut/my-centos   8.8       c1ba58473199   4 seconds ago   231MB
redis             latest    7614ae9453d1   4 months ago    113MB
hello-world       latest    feb5d9fea6a5   7 months ago    13.3kB
centos            latest    5d0da3dc9764   7 months ago    231MB
[root@docker ~]# 
关注
打赏
1664501120
查看更多评论
立即登录/注册

微信扫码登录

0.0366s