2015-10-29 22 views
16

Ho bisogno di eseguire 2 comandi con docker exec. Sto copiando un file dal contenitore docker e non voglio avere a che fare con le credenziali per usare qualcosa come ssh. Questo comando copia un file:Come eseguire 2 comandi con docker exec

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

Ma crea una sottodirectory var/log, voglio evitare che così, se ho potuto fare questi nel contenitore finestra mobile che dovrei essere buono:

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

Come posso fare in modo che dock exec esegua 2 comandi?

risposta

42

Ciò ha portato alla risposta: Escape character in Docker command line ho finito per fare questo:

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

quindi funziona da, una sorta di, eseguire il comando una bash con un parametro che è il 2 comandi voglio correre .

+0

Grazie mille, questo mi aiuta molto – UnSaid

0

Se qualcun altro è venuto qui per la splendida risposta, ma vuole anche un modo migliore per risolvere il problema originale di OP (OP OP ..?) Per copiare un file da un contenitore mobile, ora c'è un comando docker cp che A fare questo: https://docs.docker.com/engine/reference/commandline/cp/

+0

bello, davvero bello – Solx

Problemi correlati