Io-Redirection

如何寫入正在執行的 docker 容器中的文件?

  • January 5, 2022

我可以從cat文件讀取到標準輸出。通過這種方式,我可以例如將文件從 docker 容器中輸出:

docker exec my_container cat file > file_on_host

當我想做相反的事情時,我需要一個從標準輸入讀取並保存到文件的命令。有這樣的命令嗎?

docker exec my_container ??? file < file_on_host

與您的方法類似,

docker exec -i *my_container* dd of= *file* < *file_on_host*

它為您提供了一個很好的狀態摘要,並且不會將數據寫入標準輸出。

可能還有一些其他選項,例如 (可能不起作用,具體取決於您的容器的作業系統是否支持)和.cp /dev/stdin *file*``/dev/stdin``sh -c "cat > *file*"

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

引用自:https://unix.stackexchange.com/questions/322637