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镜像。