docker exec で 2 つのコマンドを実行する必要があります。docker コンテナからファイルをコピーしていますが、ssh などを使用するために資格情報を扱う必要はありません。このコマンドはファイルをコピーします:
sudo docker exec boring_hawking tar -cv /var/log/file.log | tar -x
しかし、サブディレクトリ var/log が作成されるので、これを回避したいので、Docker コンテナでこれらを実行できれば問題ありません。
cd /var/log ; tar -cv ./file.log
docker exec で 2 つのコマンドを実行するにはどうすればよいですか?
ベストアンサー1
その結果、次のような答えが導き出されました。Docker コマンドラインのエスケープ文字結局、私はこうしました:
sudo docker exec boring_hawking \
bash -c 'cd /var/log ; tar -cv ./file.log' \
| tar -x
つまり、実行したい 2 つのコマンドをパラメータとして 1 つの bash コマンドを実行することで機能します。