2015-10-29 12 views
16

Ich muss 2 Befehle mit Docker exec ausführen. Ich kopiere eine Datei aus dem Andock-Container und möchte nicht mit Anmeldeinformationen umgehen müssen, um etwas wie ssh zu verwenden. Dieser Befehl kopiert eine Datei:Wie führe ich 2 Befehle mit Docker exec

sudo docker exec boring_hawking tar -cv /var/log/file.log | tar -x 

Aber es schafft ein Unterverzeichnis var/log, ich will, dass vermeiden, so dass, wenn ich diese in der Docker Behälter tun konnte ich gut sein sollte:

cd /var/log ; tar -cv ./file.log 

Wie kann ich docker exec ausführen 2 Befehle ausführen?

Antwort

42

Dies führte zu der Antwort: Escape character in Docker command line Ich landete das bis zu tun:

sudo docker exec boring_hawking bash -c 'cd /var/log ; tar -cv ./file.log' | tar -x 

So funktioniert es, nach Art, laufen die ein Bash-Befehl mit einem Parameter, der die zwei Befehle, die ich laufen will, ist .

+0

Vielen Dank, das hilft mir sehr – UnSaid

0

Wenn jemand anderes hier für die ehrfürchtige Antwort kam, aber auch einen besseren Weg zur Lösung von OPs ursprünglichem Problem (OP's OP ..?), Um eine Datei aus einem Andock-Container zu kopieren, gibt es jetzt einen docker cp Befehl, der wird tun Sie dies: https://docs.docker.com/engine/reference/commandline/cp/

+0

schön, wirklich nett – Solx

Verwandte Themen