docker图片和图层如何工作?
其实我是Docker生态系统的新手,我正在试图理解一个容器如何在基础图像上工作? 基础图像是否被加载到容器中?
我已经通过了Docker文档,其中说,一个读写容器层形成在容器层的图像层的顶部,但我感到困惑的是图像是不可变的,对吗? 然后,图像在哪里运行,它在虚拟机中的Docker引擎中,以及容器如何进入游戏?
一个容器如何在基础图像上工作? 基础图像是否被加载到容器中?
Docker
容器将一个软件包装在一个完整的filesystem
,该filesystem
包含运行所需的所有东西:代码,运行时,系统工具,系统库 – 任何可以安装在服务器上的东西。
像FreeBSD Jails
和Solaris Zones
,Linux容器是独立的执行环境 – 具有独立的CPU,内存,块I / O和networking资源(使用CGROUPS
内核function) – 共享主机操作的内核系统。 结果是感觉像一个虚拟机,但摆脱了来宾操作系统的所有重量和启动开销。
这就是说每个发行版都有它自己的官方docker
图片( library
),这是与最小的二进制文件一起发货,考虑到docker
的最佳实践,它已经准备好build立。
我很困惑,形象是不可改变的,对吧? 图像在哪里运行,它在虚拟机中的Docker引擎中,以及容器如何进入游戏?
Docker
过去使用AUFS
,仍然在debian
上使用它,并在其他发行版上使用AUFS
如overlay
等文件系统。 AUFS
提供分层。 每个图像由图层组成,这些图层是只读的。 每个容器在其图像层上都有一个读/写层。 只读图层在容器之间共享,因此您将节省存储空间。 容器将看到所有图像层+读/写层的union mount
。