1. ホーム
  2. docker

[解決済み] docker execで2つのコマンドを実行する方法

2022-11-11 21:58:15

質問

docker execで2つのコマンドを実行する必要があります。 私はDockerコンテナからファイルをコピーしており、sshのようなものを使用するためにクレデンシャルに対処する必要はありません。 このコマンドはファイルをコピーします。

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

しかし、これはサブディレクトリ var/log を作成するので、それを避けたいので、これらをドッカーコンテナで行うことができれば、問題ないでしょう。

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

docker execで2つのコマンドを実行させるにはどうしたらいいですか?

どのように解決するのですか?

これが答えにつながりました。 Dockerのコマンドラインでのエスケープ文字 結局こうしました。

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

つまり、実行したい2つのコマンドをパラメータにして、1つのbashコマンドを実行することで動作します。