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/stdin
sh -c "cat > file"
答え3
実際には簡単に見えます。
docker cp localfile.txt <CONTAINER ID>:/home/docker/data/
答え4
最初のように通常の古いリダイレクトを使用できるため、問題を理解できません。
docker exec my_container < file_on_host > file
またはcat
(再リダイレクトで)を使用します。