实际上,我是 Docker 生态系统的新手,我正在尝试了解容器在基础映像上究竟是如何工作的?基础镜像是否被加载到容器中?
我已经通过 Docker 文档,其中说读写容器层是在作为容器层的镜像层之上形成的,但我感到困惑的是镜像是不可变的,对吗?那么镜像在哪里运行,它是否在 VM 的 Docker 引擎中,以及容器实际上是如何发挥作用的?
实际上,我是 Docker 生态系统的新手,我正在尝试了解容器在基础映像上究竟是如何工作的?基础镜像是否被加载到容器中?
我已经通过 Docker 文档,其中说读写容器层是在作为容器层的镜像层之上形成的,但我感到困惑的是镜像是不可变的,对吗?那么镜像在哪里运行,它是否在 VM 的 Docker 引擎中,以及容器实际上是如何发挥作用的?
容器究竟是如何在基础镜像上工作的?基础镜像是否被加载到容器中?
Docker
容器将一个软件包装成一个完整的软件,filesystem
其中包含运行所需的一切:代码、运行时、系统工具、系统库——任何可以安装在服务器上的东西。
与FreeBSD Jails
和一样Solaris Zones
,Linux 容器是自包含的执行环境——具有自己的、隔离的 CPU、内存、块 I/O 和网络资源(使用CGROUPS
内核特性)——共享主机操作系统的内核。结果是感觉就像一个虚拟机,但减轻了客户操作系统的所有重量和启动开销。
话虽这么说,每个发行版都有自己的官方镜像docker
(library
docker
我很困惑图像是不可变的,对吗?映像在哪里运行,它是否在 VM 的 Docker 引擎中,以及容器实际上是如何发挥作用的?
Docker
曾经使用AUFS
,仍然使用它,debian
并在其他发行版上使用AUFS
类似文件系统overlay
等。AUFS
提供分层。每个图像由图层组成,这些图层是只读的。每个容器在其镜像层之上都有一个读/写层。只读层在容器之间共享,因此您将节省存储空间。容器将看到union mount
所有图像层 + 读/写层。