tar cv –files-from / dev / null | docker导入 – 从头开始“的工作?
在了解Docker和如何创build一个最小的图像时,我遇到了这个命令:
tar cv --files-from /dev/null | docker import - scratch
这创build了一个最小的泊坞窗图像。
我无法理解当我们执行tar cv --files-from /dev/null
时会发生什么情况。 如果我在terminal上运行这个命令,我没有输出。
如果我运行docker import - scratch
,它永远挂在那里。
那么这两个命令的组合是如何工作的呢? 我仍然困惑,这是如何工作,并试图找出实际工作,任何帮助/指导,这将是非常感激。
运行tar cv --files-from /dev/null
实际上是生成输出; 你只是看不到它。 尝试这个:
tar cv --files-from /dev/null | od -a
那tar
命令生成一个空的tar档案。
docker import - scratch
命令从stdin
导入一个tar归档文件并将其命名为scratch
。 从手册页:
docker-import – 创build一个空的文件系统映像,并将tarball(.tar,.tar.gz,.tgz,.bzip,.tar.xz,.txz)的内容导入到该文件中,然后select性地标记它。
既然你正在给它一个空的存档,你会得到一个空的Docker镜像。