Docker镜像原理学习理解
Posted jks212454
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker镜像原理学习理解相关的知识,希望对你有一定的参考价值。
Docker镜像原理学习理解
一、Docker镜像的组成
1.Docker镜像图层
2.union file system
docker通过联合文件系统,将docker的不同层级,整合为一个文件系统,为用户隐藏了多层的视角。
3.镜像层-bootfs
bootfs(boot-file system)——》 Linux内核:
bootfs主要包含bootloader和kernel,BootLoader主要作用引导宿主机内核。
作用:宿主机提供内核
4.镜像层-rootfs
rootfs(root-file system)——》发行版
rootfs就是不同的操作系统的发行版,例如suse,Ubuntu,centos等。
作用:docker获取基础镜像
5.镜像层-依赖环境
使用发行版提供的软件安装管理,例如yum install -y mysql
作用:依赖环境
6.容器层
可以写入的容器,想运行的代码程序。
作用:具体的程序运行
备注:只有容器层可以修改写入,其余层级为只读层。
二、docker镜像小结
1.当下载镜像,使用镜像启动容器时,docker会在该image的顶层,添加一个可读写的文件系统作为容器,然后运行该容器。
2.docker镜像的本质为unionFS管理的分层文件系统。
3.因为docker镜像共享宿主机内核,所以镜像文件一般很小。
4.dockerfile作用:自定义docker镜像的每一层作用
三、进入容器空间
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2db168499262 redis "docker-entrypoint.s…" 11 hours ago Up 11 hours 6379/tcp, 0.0.0.0:8021->8021/tcp, :::8021->8021/tcp cool_ganguly
2716e3ec1417 nginx "/docker-entrypoint.…" 13 hours ago Up 13 hours 0.0.0.0:80->80/tcp, :::80->80/tcp naughty_driscoll
[root@node1 ~]# docker exec -it 2716e3ec1417 bash
root@2716e3ec1417:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
四、定义容器镜像
定义一个容器镜像步骤:
1.获取基础镜像,选择一个发行版平台(例如centos/ubuntu等)
2.例如在centos镜像中再进行安装redis软件。
3.导出镜像们,可以命名redis的镜像文件。
4.docker的层级概念:底层是centos镜像,上层是redis镜像,centos镜像属于父镜像。
五、容器层介绍
所有对容器的修改动作,都只会发生在容器里,只有容器层是是可写的,其余镜像层是只读的。
以上是关于Docker镜像原理学习理解的主要内容,如果未能解决你的问题,请参考以下文章