Io-Redirection
如何寫入正在執行的 docker 容器中的文件?
我可以從
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