当前位置:首页>维修大全>综合>

docker中容器和镜像的区别(docker镜像和容器通俗讲解)

docker中容器和镜像的区别(docker镜像和容器通俗讲解)

更新时间:2024-04-20 13:46:34

docker中容器和镜像的区别

在Docker中,容器(Container)和镜像(Image)是两个核心概念,它们有以下区别:

1. 镜像(Image):

   - 镜像是一个只读的文件,包含了构建容器所需的所有文件和配置。可以将镜像看作是一个软件包或模板,它包含了运行特定应用程序所需的操作系统、应用程序代码、依赖库、设置等。

   - 镜像是用于创建容器的基础,可以从镜像启动一个或多个容器。

   - 镜像一旦构建完成后,其内容将保持不变,可以被重复使用,并可以在不同的环境中进行部署。

2. 容器(Container):

   - 容器是镜像的运行实例。它是一个独立、隔离的运行环境,可以在其中运行应用程序。

   - 容器可以被启动、停止、删除和重启,并可以与其他容器或主机进行通信。

   - 容器提供了对镜像的封装和隔离,使得应用程序可以以一种独立且可移植的方式运行,而不受底层系统环境的影响。

   - 容器中的文件系统在容器启动时从镜像中创建或复制,并且容器可以对文件系统进行修改,但这些修改不会影响到原始镜像。

简而言之,镜像是一个静态的、可重复使用的构建模板,而容器是基于镜像创建的运行实例。镜像提供了应用程序运行所需的一切,而容器则提供了隔离、可移植和可管理的运行环境。通过使用镜像和容器,Docker实现了轻量级、可移植和可扩展的应用程序部署和管理方式。

镜像是容器的基石,容器基于镜像启动,镜像就像是容器的源代码,保存了用于容器启动的各种条件。镜像是一个层叠的只读文件系统,结构如下bootfs 引导文件系统,很像传统的Linux引导文件系统

rootfs root文件系统,可以是一种或多种操作系统,如Ubuntu或centos,root文件系统永远只能是只读状态

union mount 联合加载技术,一次加载多个只读文件系统到rootfs系统之上。在外围看到的只是一个文件系统,联合加载使各层文件系统叠加到一起,使最终的文件系统包含所有底层文件系统和目录,这样的文件系统就是镜像

容器通过镜像启动:容器是docker的执行单元。启动和执行:镜像如果是构建和打包阶段,则容器是启动和执行阶段

容器启动过程:启动时在镜像的最顶层加一个可写的文件系统,即可写层。Docker中运行的程序就是在这个层中执行的。docker第一次启动一个容器时,可写层是空的,当文件系统发生变化,都会应用到这一层。如果想修改一个文件,该文件首先会从可读写层下边的只读层复制到该读写层,该文件的只读版本依然存在,但是已经被读写层中的该文件副本所隐藏。

更多栏目