docker execで2つのコマンドを実行する方法 質問する

docker execで2つのコマンドを実行する方法 質問する

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 コマンドを実行することで機能します。

おすすめ記事