下面是redis镜像的manifest文件入口片段(
docker inspect image redis
)
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/bd512eb256c8aa56cbe9243d440a311820712d1a245fe6f523d39d19cd6c862d/diff:/var/lib/docker/overlay2/7fa1e90f35c78fc83c3a
4b86e36e45d742383b394adf9ce4cf9b339d919c9cbe/diff:/var/lib/docker/overlay2/2c1869386b5b8542959da4f0173a5272b9703326d619f27258b4edff7a1dbbf9/diff:/var/lib/docker/overlay2
/23ba3955c5b72ec17b9c409bd5233a3d92cbd75543c7d144b364f8188765788e/diff:/var/lib/docker/overlay2/87d8a92919103e8ff723221200acb36e17c611fa499571ab183d0f51458e6f24/diff",
"MergedDir": "/var/lib/docker/overlay2/e503ed41978e99fe9b71a4225763a40b7988e9a4f31d4c06ef1ec1af46b0b6ab/merged",
"UpperDir": "/var/lib/docker/overlay2/e503ed41978e99fe9b71a4225763a40b7988e9a4f31d4c06ef1ec1af46b0b6ab/diff",
"WorkDir": "/var/lib/docker/overlay2/e503ed41978e99fe9b71a4225763a40b7988e9a4f31d4c06ef1ec1af46b0b6ab/work"
},
"Name": "overlay2"
},
其中
overlay2
文件系统由 docker 镜像和容器使用。
在清单的
GraphDriver
条目内,
LowerDir
/ MergedDir
/ UpperDir
/ WorkDir
表示什么?
LowerDir:这些是覆盖文件系统的只读层。对于 docker 来说,这些是按顺序组装的图像层。
UpperDir:这是覆盖文件系统的读写层。对于 docker,这相当于容器特定层,其中包含该容器所做的更改。
WorkDir:这是覆盖所需的目录,需要一个空目录供内部使用。
MergedDir:这是覆盖文件系统的结果。运行容器时,Docker 会有效地 chroot 进入此目录。
有关覆盖文件系统的更多信息(overlay2 是较新的版本,但我不相信有任何用户可见的更改),请参阅内核文档:https://www.kernel.org/doc/Documentation/filesystems/overlayfs .txt