在学习 docker 以及如何创建最小镜像时,我遇到了这个命令:-
tar cv --files-from /dev/null | docker import - scratch
这将创建一个最小的 docker 镜像。
我无法理解当我们执行 tar cv --files-from/dev/null
时会发生什么。如果我在我的终端上运行这个命令,我没有得到任何输出。
如果我单独运行 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 - Create an empty filesystem image and import the contents of the tarball (.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) into it, then optionally tag it.
由于您向它提供了一个空存档,因此您会得到一个空的 Docker 镜像。
关于linux - 'tar cv --files-from/dev/null | docker import - scratch' 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929469/