如何获取码头集装箱底层的aufs
系统的根文件夹信息?码头,码头集装箱的aufs根在哪里
假设我运行了docker run mytag echo 'Done'
,之后,我相信码头将会在aufs
系统之上建立一个废弃的容器。我想利用这个aufs
文件系统(比如chroot),而不用做docker save
或docker export
。
我该怎么做?我需要访问该堆栈的aufs文件系统,以便从整个docker系统中创建一个squashfs文件系统,而不是从docker export
开始的tar,因为我总是在映像文件上执行mksquashfs,并且从未从内部完成mksquashfs系统该系统。
这是在Ubuntu下的lxc-docker
版本1.2.0。
UPDATE:
尝试过与查尔斯的建议,我发现从该系统内制作的squashfs系统是不可行的:
[email protected]:/# 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
所以,我正在乌斯曼的回答为回答。
感谢
这是一个实现细节 - 也就是说它没有被承诺是稳定的,而且你所写的任何依赖于它的东西都绝对不能保证在未来的版本中继续工作。另外,在docker运行完成后,root会得到清理 - 所以这些图层仍然是单独存在的,但是没有实例化的组合。 – 2014-10-01 04:11:59
据我所知,我确实发现以前的所有博客/写作都不再适用。但是,我确实需要访问这个aufs文件系统,我需要创建一个'squashfs'文件系统而不是'tar'。所以当码头运行完成后,root会被清理干净,这是否意味着如果我在停止的容器上执行'docker export',输出会出错?无论如何,如果我运行'bash -i'来保持会话打开,我在哪里可以找到docker 1.2.0的aufs文件系统? – xpt 2014-10-02 02:30:57
'export'类似地,在堆栈运行时设置堆栈(并立即删除堆栈)。如果当前版本仍然在主机文件系统名称空间而不是容器名称空间中进行挂载,那么'bash -i'方法应该可以工作,但我不知道是否是这种情况 - 如果不是,那么您要求的是什么是不可能的/可用的。 – 2014-10-02 02:42:42