为什么构建 Docker Container Image 的第一步需要一个 Base Image 作为源,而在我看来它本身就是一个像 ALPINE 这样的操作系统?
Why the first step of building a Docker Container Image takes a Base Image as source which itself seems to me as an operating system like ALPINE?
我最近从 Udemy 学习了 Docker 课程,但我无法理解 Docker 世界中的图像实际上是什么?
我了解到,当 Docker 在我们的系统上运行时,它本身就是一个虚拟机 运行 Linux 操作系统。 Linux 操作系统从我们提供的镜像中运行多个容器。 Container 在硬盘驱动器上有其独立的 space,它自己的内存和分配的 CPU,但与虚拟机不同,它没有自己的完整操作系统。
But, because I have learned that the Containers share a single operating system, I am confused about the Images we build for running a Container.
因为我看到要构建一个 Docker 图像,我们首先加载一个基本图像(在我看来它本身就像一个操作系统...... FROM Alpine
ETC..)。那么当Image本身有操作系统的时候,为什么说Container共享单机操作系统呢?
基本图像只是一个 Docker 图像,它是使用所有其他 Docker 图像所需的通用包构建的。始终建议准备一个基础 Docker 图像并使用它来派生其他 Docker 图像。当然,在构建 Docker 镜像时有许多最佳实践,可以尽可能优化它,以提高 Docker 容器的性能和启动时间。
当您 运行 构建 Docker 映像时,Docker 文件中的每条指令都会创建一个文件系统层。文件系统层是堆叠的,每个文件系统层都包含增量。
说容器共享一个操作系统有点误导。他们共享的是内核,而不是通常带有 OS 的库和支持程序,例如 cp,或 bash.
我最近从 Udemy 学习了 Docker 课程,但我无法理解 Docker 世界中的图像实际上是什么?
我了解到,当 Docker 在我们的系统上运行时,它本身就是一个虚拟机 运行 Linux 操作系统。 Linux 操作系统从我们提供的镜像中运行多个容器。 Container 在硬盘驱动器上有其独立的 space,它自己的内存和分配的 CPU,但与虚拟机不同,它没有自己的完整操作系统。
But, because I have learned that the Containers share a single operating system, I am confused about the Images we build for running a Container.
因为我看到要构建一个 Docker 图像,我们首先加载一个基本图像(在我看来它本身就像一个操作系统...... FROM Alpine
ETC..)。那么当Image本身有操作系统的时候,为什么说Container共享单机操作系统呢?
基本图像只是一个 Docker 图像,它是使用所有其他 Docker 图像所需的通用包构建的。始终建议准备一个基础 Docker 图像并使用它来派生其他 Docker 图像。当然,在构建 Docker 镜像时有许多最佳实践,可以尽可能优化它,以提高 Docker 容器的性能和启动时间。
当您 运行 构建 Docker 映像时,Docker 文件中的每条指令都会创建一个文件系统层。文件系统层是堆叠的,每个文件系统层都包含增量。
说容器共享一个操作系统有点误导。他们共享的是内核,而不是通常带有 OS 的库和支持程序,例如 cp,或 bash.