Filesystems docker,docker容器的aufs根在哪里

Filesystems docker,docker容器的aufs根在哪里,filesystems,export,docker,Filesystems,Export,Docker,如何获取docker容器底层的aufs系统的根文件夹信息 假设我运行docker运行mytag echo'Done',之后,我相信docker将在aufs系统上构建一个废弃的容器。我想使用aufs文件系统(比如chroot),而不做docker保存或docker导出 我怎么能得到这个?我需要访问aufs文件系统的堆栈,以便从整个docker系统中创建一个squashfs文件系统,而不是从docker export中创建tar,因为我总是对映像文件执行mksquashfs,而从未在该系统中执行过m

如何获取docker容器底层的
aufs
系统的根文件夹信息

假设我运行
docker运行mytag echo'Done'
,之后,我相信docker将在
aufs
系统上构建一个废弃的容器。我想使用
aufs
文件系统(比如chroot),而不做
docker保存
docker导出

我怎么能得到这个?我需要访问aufs文件系统的堆栈,以便从整个docker系统中创建一个squashfs文件系统,而不是从
docker export
中创建tar,因为我总是对映像文件执行mksquashfs,而从未在该系统中执行过mksquashfs系统

这是Ubuntu下的lxc docker版本1.2.0

更新:

在尝试了查尔斯的建议后,我发现从该系统内部建立壁球系统是不可行的:

root@1676061f0072:/#  mount --bind / /mnt/root || { echo error bind mount; exit; } # bind-mount container root only
mount: block device / is write-protected, mounting read-only
mount: cannot mount block device / read-only
error bind mount
exit
所以,我把乌斯曼的答案作为答案


谢谢

我同意这一评论,但是图像可以在
/var/lib/docker/aufs/diff/
中找到,其中是您可以使用

docker inspect <container-name> | grep Id
docker inspect | grep Id

考虑在容器本身内运行
mksquashfs
,并装载目标目录(根文件系统在绑定装载上,这样您的squashfs映像就不会试图递归到
/proc
/sys
等)

类似于以下未经测试的代码:

docker run --privileged=true -v /path/to/destination:/mnt/dest bash <<'EOF'
  mkdir -p /mnt/root || exit
  mount --bind / /mnt/root || exit             # bind-mount container root only
  mksquashfs /mnt/root /mnt/dest/squashfs.img  # build an image of that root fs
EOF

docker run--privileged=true-v/path/to/destination:/mnt/dest bash这是一个实现细节——也就是说,它不保证稳定,并且任何依赖它编写的东西都绝对不能保证在未来的版本中继续工作。此外,在docker运行完成后,根目录将被清理——因此层仍然单独存在,但没有实例化的复合结构。我理解这一点,并且我发现以前的所有博客/写作都不再有效。但是,我确实需要访问aufs文件系统堆栈,我需要用它创建一个
squashfs
文件系统,而不是
tar
。因此,当docker运行完成时,根目录将被清除,这是否意味着如果我在停止的容器上执行
docker导出
,输出将是错误的?无论如何,如果我运行
bash-I
以保持会话打开,我在哪里可以找到docker 1.2.0的aufs文件系统?
export
,类似地,在堆栈运行时设置堆栈(并在运行后立即将其删除)。如果当前版本仍然在主机文件系统名称空间而不是容器名称空间中进行装载,那么
bash-i
方法应该可以工作,但我不知道是否是这种情况——如果不是,然后,你所要求的是不可能的/可用的。考虑在容器内执行MKSkasFS,并将其内容通过STDUT流到外部。(你知道,当你告诉我们你实际上想要完成什么,而不是在不让我们知道你实际上想要完成什么的情况下问一个关于你想要达到目的的首选机制的问题时,这会变得容易得多。)记住——mksquashfs不能通过标准输出流。但是,应该能够将装载绑定到目标目录的容器中。这还有一个令人愉快的优点,即Docker完全不需要绑定到AUFS后端,并且能够使用LVM后端、btrfs后端等。谢谢,但是容器的id并不重要,因为它是整个层堆栈的重要组成部分。