无法在aufs / diff中找到Container文件夹

时间:2017-08-20 09:09:05

标签: amazon-web-services docker dockerfile

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

enter image description here

如果我删除容器或本地图片(使用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

1 个答案:

答案 0 :(得分:1)

您正在寻找的是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