我在Docker Container ID文件夹中找不到aufs/diff文件夹:

amazon-web-services - 无法在aufs/diff中找到Container文件夹-LMLPHP

如果我删除了一个容器或本地镜像(使用rm / rmi),那么我会看到一些文件夹已从aufs/diff文件夹中删除。这种映射如何在ContainerID / ImageIDaufs/diff文件夹内的目录名称之间发生?

编辑:docker info 的输出

root@ip-172-31-34-158:/home/ubuntu# docker info
Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 1
Server Version: 1.12.6
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 7
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: overlay host bridge null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-1022-aws
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 990.9 MiB
Name: ip-172-31-34-158
ID: W6FS:JOLT:B2DT:XN4L:DDN5:5Q3G:RITI:IBSN:SPMC:DIH3:TCPT:IGZO
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 127.0.0.0/8

最佳答案

您正在寻找的是docker diff命令。考虑以下流程

$ docker run -it ubuntu:16.04 bash
root@409b5316d718:/# mkdir -p /find/me/if/you/can
root@409b5316d718:/# touch /etc/newconfig
root@409b5316d718:/# touch /find/me/if/you/can/hereiam
root@409b5316d718:/# exit

然后您获得最后退出的容器的容器ID
$ docker ps -a -q -l
409b5316d718

使用docker diff查找已更改,添加或删除的内容
$ docker diff 409b5316d718
C /etc
A /etc/newconfig
A /find
A /find/me
A /find/me/if
A /find/me/if/you
A /find/me/if/you/can
A /find/me/if/you/can/hereiam
C /root
A /root/.bash_history

C = Change
A = Added
D = Deleted

编辑1

现在,要了解磁盘上的更改,您需要查找更多信息。这再次是针对AUFS驱动程序实现的,不适用于其他驱动程序。

首先,您需要找到容器的完整容器ID。这可以使用下面的方法完成
$ docker inspect -f '{{ .Id }}' 409b5316d718
409b5316d7186f5dfb91d3d016841c7aba2c7aa3cf6e8969beff1a8ea728fa0e

接下来,您需要找到顶部安装层的ID,您可以在下面进行操作
$ ID=409b5316d7186f5dfb91d3d016841c7aba2c7aa3cf6e8969beff1a8ea728fa0e

$ cat /var/lib/docker/image/aufs/layerdb/mounts/$ID/mount-id
82f629a33f82936f91a61d1edfd4d19ccb5b684b933a10d2bf2c6e54278b7d2f

有了安装ID后,您可以列出其中的内容
$ tree  /var/lib/docker/aufs/diff/82f629a33f82936f91a61d1edfd4d19ccb5b684b933a10d2bf2c6e54278b7d2f/
/var/lib/docker/aufs/diff/82f629a33f82936f91a61d1edfd4d19ccb5b684b933a10d2bf2c6e54278b7d2f/
├── etc
│   └── newconfig
├── find
│   └── me
│       └── if
│           └── you
│               └── can
│                   └── hereiam
└── root

7 directories, 2 files

10-01 01:05
查看更多