実行中のDockerコンテナ内のファイルに書き込むには?

実行中のDockerコンテナ内のファイルに書き込むには?

catファイルからstdoutとして読むことができます。これにより、Dockerコンテナからファイルをパイプできます。

docker exec my_container cat file > file_on_host

逆の操作を実行するには、標準入力から読み取ってファイルに保存するコマンドが必要です。そのようなコマンドがありますか?

docker exec my_container ??? file < file_on_host

答え1

tee次のことができます。

docker exec -i my_container tee file < file_on_host

これは-i標準入力が動作するために必要です。

また、ホストにリダイレクトして回避できるファイルを出力します/dev/null

docker exec -i my_container tee file < file_on_host > /dev/null

答え2

あなたの方法に似ています。

ドッカーの実行 -i私のコンテナdd =文書<ホスト上のファイル

これは状態の良い要約を提供し、標準出力にデータを書きません。

(コンテナのOSがサポートされているかどうかによって機能しない場合があります)などのオプションがあります。cp /dev/stdin file/dev/stdinsh -c "cat > file"

答え3

実際には簡単に見えます。

docker cp localfile.txt <CONTAINER ID>:/home/docker/data/

答え4

最初のように通常の古いリダイレクトを使用できるため、問題を理解できません。

docker exec my_container < file_on_host > file

またはcat (再リダイレクトで)を使用します。

関連情報