docker引擎常用目录文件详解
docker容器目录
路径/var/lib/docker/containers/<容器ID>
在Docker
中,每个容器都有一个对应的目录位于/var/lib/docker/containers/<容器ID>
下。这个目录包含与该容器相关的各种文件和子目录,这些文件记录了容器的状态、日志和其他重要信息。
/var/lib/docker/containers/<容器ID>/
├── config.v2.json (容器的主要配置文件,包含了容器的所有配置信息。包括容器的启动命令、环境变量、挂载点(volumes)、网络设置等)
├── hostconfig.json (包含容器的主机配置信息。包括资源限制、设备映射、重启策略等)
├── hostname (包含容器的主机名)
├── hosts (包含容器的/etc/hosts文件的内容。用于解析容器内部的主机名到IP地址的映射)
├── resolv.conf (包含容器的DNS配置)
├── checkpoint (包含容器的检查点数据,如果启用了容器检查点功能)
│ └── ...
└── shm (包含共享内存shared memory的挂载点,用于容器之间的共享内存通信)
└── ... (临时文件)
docker容器引擎数据目录
路径/var/lib/docker
目录是Docker
存储其所有数据的地方,包括镜像、容器、卷、网络配置等。
/var/lib/docker/
├── containers (包含每个容器的相关文件和配置)
│ ├── <container_id>
│ │ ├── config.v2.json
│ │ ├── hostconfig.json
│ │ ├── resolv.conf
│ │ ├── log.json
│ │ └── ...
├── image (包含Docker镜像的相关文件和元数据。基于镜像构建时使用的不同文件驱动系统,放置在不同目录下)
│ ├── aufs
│ ├── overlay2
├── network (包含Docker网络的相关文件和配置)
│ ├── files (存储网络配置文件)
│ │ ├── local-kv.db (存储Docker网络的键值对数据库)
│ └── netfilter (存储与网络过滤相关的文件)
├── plugins (包含Docker插件的相关文件和配置)
│ ├── <plugin_id>
│ │ └── ...
├── swarm (包含Docker Swarm模式的相关文件和配置)
├── tmp
│ └── ...
├── trust
│ └── ...
├── volumes (包含Docker卷的相关文件和配置)
│ ├── <volume_id> (每个卷有一个独立的子目录,名称为卷ID)
│ │ └── ...
└── buildkit (用于存储BuildKit构建器的相关文件和配置)
└── ...
容器运行时目录
路径/var/lib/containerd
目录是Containerd
存储其状态和元数据的地方。Containerd
是一个行业标准的容器运行时,专注于简单、稳定和可移植性。它负责管理容器的生命周期,包括镜像管理、存储、网络等。Docker
引擎在启动时会在该目录下自动生成相关文件。
/var/lib/containerd/
├── io.containerd.content.v1.content
│ └── blobs
│ └── sha256
│ └── ... (包含以SHA-256哈希值命名的镜像层blob格式文件,存储镜像实际内容)
├── io.containerd.metadata.v1.bolt
│ └── meta.db (元数据库BoltDB文件,用于存储Containerd的元数据信息,如容器、镜像、快照等的状态和配置)
├── io.containerd.snapshotter.v1.aufs
│ ├── snapshots
│ └── ... (使用AUFS快照器的容器快照)
├── io.containerd.snapshotter.v1.native
│ ├── snapshots
│ └── ... (使用native快照器的容器快照)
├── io.containerd.snapshotter.v1.overlayfs
│ ├── snapshots
│ └── ... (使用overlayfs快照器的容器快照)
└── tmpmounts
└── ... (包含临时挂载的文件系统,通常在容器创建或删除过程中使用)