2015-10-29 9 views
16

Muszę uruchomić 2 polecenia za pomocą funkcji dokowania exec. Kopiuję plik z kontenera docker i nie chcę mieć do czynienia z poświadczeniami, aby używać czegoś takiego jak ssh. To polecenie kopiuje plik:Jak uruchomić 2 polecenia za pomocą dokera exec

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

ale tworzy podkatalog var/log, chcę uniknąć sytuacji, więc jeśli mogę zrobić je w pojemniku Döcker powinny być dobre: ​​

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

Jak sprawić, by program dokujacy uruchamiał 2 polecenia?

Odpowiedz

42

Doprowadziło to do odpowiedzi: Escape character in Docker command line skończyło się w ten sposób:

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

Tak to działa na zasadzie, rodzaj, uruchamiając komendę jeden bash z parametrem, który jest polecenia 2 Chcę uruchomić .

+0

Dziękuję bardzo, to mi bardzo pomaga – UnSaid

0

Jeśli ktokolwiek przyszedł tutaj, aby uzyskać wspaniałą odpowiedź, ale także chce lepszego rozwiązania pierwotnego problemu PO (OP OP.?), Aby skopiować plik z kontenera dokera, jest teraz komenda docker cp, która będzie zrób to: https://docs.docker.com/engine/reference/commandline/cp/

+0

ładne, naprawdę ładne – Solx

Powiązane problemy