我想更好地理解 - 为什么 Docker 镜像是特定于架构的?为什么 ARM 处理器架构需要与 ARM64 AArch32 等不同的映像?
Docker 镜像显然包含处理器特定的指令,这使得它们依赖于架构。docker镜像
的哪一部分包含处理器特定指令以及为什么?
为什么Docker-Runtime 不提供独立于架构的抽象层?
是吗,因为否则该层将与虚拟机中的 HyperVisor 层相当,并且不再是“轻量级”的?
docker 镜像的预期内容是什么?一个应用程序+所有支持库和任何其他所需的文件。
这在实践中通常意味着什么?基本上是一个精简的 Linux 用户空间 + 应用程序。
当然,并不是每个文件都是特定于体系结构的,但是二进制文件和库是针对某些特定体系结构编译的(无论它们是否放置在 docker 映像中,显然都是这种情况)。
这里没有什么魔法,docker 镜像只是打包和分发应用程序的一种手段。它不会将针对 x86-64、arm64 或其他任何语言编译的应用程序转变为与体系结构无关的应用程序。
如果应用程序采用某种非编译语言,例如 Python 应用程序或 Nodejs 应用程序,则上述内容仅适用于运行时;Python 运行时或 Nodejs 运行时是为某些特定架构构建的,并且需要为同一架构构建适当的支持库。
| 归档时间: |
|
| 查看次数: |
1154 次 |
| 最近记录: |