0

在学习 docker 以及如何创建最小图像时,我遇到了这个命令:-

tar cv --files-from /dev/null | docker import - scratch

这将创建一个最小的 docker 图像。

我无法理解我们这样做时会发生什么tar cv --files-from /dev/null。如果我在终端上运行这个命令,我不会得到任何输出。

如果我docker import - scratch一个人跑,它就会永远挂在那里。

那么这两个命令的组合是如何工作的呢?我仍然很困惑,它是如何工作的,并试图弄清楚实际的工作,对此的任何帮助/指导将不胜感激。

4

1 回答 1

2

运行tar cv --files-from /dev/null实际上是在产生输出;你只是看不到它。试试这个:

tar cv --files-from /dev/null | od -a

tar命令会生成一个空的 tar 存档。

docker import - scratch命令从中导入一个 tar 存档stdin并为其命名scratch。从手册页:

docker-import - 创建一个空的文件系统映像并将 tarball 的内容(.tar、.tar.gz、.tgz、.bzip、.tar.xz、.txz)导入其中,然后可选地对其进行标记。

因为你给它一个空的档案,你会得到一个空的 Docker 镜像。

于 2016-04-29T04:25:56.413 回答