2016-04-29 14 views
0

Während über Docker lernen und wie ein minimales Bild zu schaffen, stieß ich auf diesen Befehl: -Wie funktioniert 'tar cv --files-from/dev/null | Docker Import - Scratch 'Arbeit?

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

Dieses Bild hat ein minimal Docker schafft.

Ich kann nicht verstehen, was passiert, wenn wir tar cv --files-from /dev/null tun. Wenn ich diesen Befehl auf meinem Terminal ausführe, bekomme ich keine Ausgabe.

Wenn ich docker import - scratch alleine laufen lasse, bleibt es einfach für immer dort hängen.

Wie funktioniert dann die Kombination dieser beiden Befehle? Ich bin immer noch verwirrt und wie das funktioniert und versuche herauszufinden, die tatsächliche Arbeit, jede Hilfe/Anleitung dazu würde wirklich geschätzt werden.

Antwort

2

Die Ausführung tar cv --files-from /dev/null erzeugt tatsächlich die Ausgabe; Du kannst es einfach nicht sehen. Versuchen Sie folgendes:

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

Dieser tar Befehl generiert ein leeres tar-Archiv.

Der Befehl docker import - scratch importiert ein tar-Archiv von stdin und nennt es scratch. Aus der Manpage:

Docker-Import - Erstellen Sie ein leeres Dateisystem-Image und importieren Sie die Inhalt der Tarball (TAR, tar.gz, TGZ, .bzip, .tar.xz, .txz) hinein, dann optional markieren Sie es.

Da Sie es ein leeres Archiv füttern, erhalten Sie ein leeres Docker-Bild.