【Docker技术详解】(一)Docker镜像文件系统的关系和交互

Docker镜像文件系统的关系和交互

Docker 是用于容器化应用程序的平台,它通过镜像和容器来实现应用的隔离和管理。在这个过程中,Docker 镜像的文件系统与宿主机的文件系统之间有特定的关系和交互方式。本文将详细讨论这些关系,并提供一些示例来帮助理解。

一、Docker 镜像的文件系统

Docker 镜像是应用程序的只读模板,包含了运行应用所需的一切,包括操作系统、软件包、代码等。镜像由多层文件系统构成,每一层代表一个变化或者添加。镜像本身是不可变的,确保了其一致性和稳定性。

  • 示例:

    在终端中输入以下命令来查看镜像的层次结构:

    docker history <image-name>
    

    这个命令将显示镜像中每一层的信息,例如创建时间、大小等。

docker history <image-name> 命令用于查看指定 Docker 镜像的历史构建信息。每一层镜像构建步骤的信息,包括对应的命令和创建时间等,都会显示出来。这个命令有几个可用的选项,以下是详细的解释:

  1. --help:

    • 用于显示命令的帮助信息,帮助理解命令及其选项的使用。
  2. -H, --human:

    • 默认情况下这个选项被启用,输出的信息会在“大小”列以可读形式显示(例如 KB, MB)。你可以使用 --no-trunc 禁用此选项来显示完整大小信息。
  3. --no-trunc:

    • 使用该选项时,会显示所有信息的完整输出,而不是被截断的形式。例如,镜像 ID 通常以较短的形式显示,而使用此选项后会显示完整的 SHA256 哈希字符串。
  4. -q, --quiet:

    • 该选项用于只显示镜像的 ID 列表,省略其他详细信息。这对于需要获取层 ID 的自动化脚本或进一步处理非常有用。
  5. --format:

    • 允许你自定义输出格式。这个选项接收 Go 模板语法,可以指定哪些列需要显示以及如何显示。这是一个高度灵活的选项,可用来调整显示内容以满足特定需求。
实例

假设你需要查看名为 my-image 的镜像历史,你可以执行以下命令:

docker history my-image

如果你想查看不截断的输出:

docker history --no-trunc my-image

如果想以特定格式显示,可以使用 --format

docker history --format "{
   {.ID}}: {
   {.CreatedBy}}" my-image
二、容器的文件系统

当一个容器从镜像启动时,Docker 会在宿主机上为该容器分配一个独立的文件系统,基于镜像的文件系统构建,添加一个可写层(写时复制,Copy-On-Write)。

  • 示例:

    运行以下命令创建一个新容器:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值