【发布时间】:2019-12-26 10:11:34
【问题描述】:
我希望能够在不破坏标准输入的情况下将一些内容通过管道传输到 docker 进程中。
我想我可以通过在生成 docker 进程之前在 bash 中打开一个新的文件描述符来做到这一点,然后在 docker 进程中使用这个描述符。但是它不起作用
码头外:
exec 4<>somefile.txt
docker run --rm -i image cmd args > output.txt
码头内部:
exec 4>file.txt # also tried without the exec
do something with file.txt
docker 容器在到达4>file.txt 行时停止。
它必须是一个原子动作,所以我不能使用docker cp 或类似的东西。
另外,docker 镜像没有暴露任何网络端口,所以不能使用 netcat。
我宁愿不使用任何复杂的 docker mounts。
STDIN 是其他用途所必需的,所以我不能破坏它
是否有任何其他选项可以将文件内容放入临时容器中以使用单个命令?
【问题讨论】:
-
docker run -v file.txt? -
好的,挂载语法没有我想象的那么复杂!
-
这不起作用。 -v 总是在容器中创建一个目录,而不是一个文件
标签: bash docker io-redirection