Amazon web services 在aufs/diff中找不到容器文件夹
我在Amazon web services 在aufs/diff中找不到容器文件夹,amazon-web-services,docker,dockerfile,Amazon Web Services,Docker,Dockerfile,我在aufs/diff文件夹中找不到Docker Container ID文件夹: 如果我删除容器或本地映像(使用rm/rmi),那么我可以看到一些文件夹从aufs/diff文件夹中被删除。这个映射是如何在ContainerID/ImageID和aufs/diff文件夹中的目录名之间进行的 编辑:输出码头工人信息 root@ip-172-31-34-158:/home/ubuntu# docker info Containers: 1 Running: 0 Paused: 0 Stopp
aufs/diff
文件夹中找不到Docker Container ID
文件夹:
如果我删除容器或本地映像(使用rm
/rmi
),那么我可以看到一些文件夹从aufs/diff
文件夹中被删除。这个映射是如何在ContainerID/ImageID
和aufs/diff
文件夹中的目录名之间进行的
编辑:输出码头工人信息
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
您需要的是
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
将
docker info
的输出添加到您的问题中为什么要查找该文件夹?您不应该看到docker如何在内部存储东西。因为它会根据存储驱动程序而变化,并且在不同的操作系统上不会相同。因此,请列出您的意图,以便建议更好的解决方案容器中创建了一些文件,我需要知道文件存储在主机物理磁盘中的路径。请告诉我如何获取存储文件的主机磁盘路径。如果您需要知道容器创建的文件的主机路径,您可能做错了什么。如果您需要与主机显式共享文件,请使用主机装载(-v/host/path:/container/path
)。将docker info
的输出添加到您的问题中为什么要查找该文件夹?您不应该看到docker如何在内部存储东西。因为它会根据存储驱动程序而变化,并且在不同的操作系统上不会相同。因此,请列出您的意图,以便建议更好的解决方案容器中创建了一些文件,我需要知道文件存储在主机物理磁盘中的路径。请告诉我如何获取存储文件的主机磁盘路径。如果您需要知道容器创建的文件的主机路径,您可能做错了什么。如果需要与主机显式共享文件,请使用主机装载(-v/host/path:/container/path
)。这将显示docker内部修改的文件,这很好。但是,一旦容器停止/分离,我在硬盘驱动器中哪里可以找到这些文件?它应该在aufs/diff
中的某个地方,因此只想知道aufs/diff
中的文件夹如何映射到容器ID/图像ID
。这非常有用。这将显示docker中修改的文件,这很好。但是,一旦容器停止/分离,我在硬盘驱动器中哪里可以找到这些文件?它应该在aufs/diff
中的某个地方,因此只想知道aufs/diff
中的文件夹如何与容器ID/Image ID
映射。这非常有用