Linux 将数据从主机管道传输到docker容器命令不适用于docker计算机
我正在Windows 10上运行Docker,使用托管。我正尝试使用以下命令通过“docker run”将数据从主机传输到容器繁殖中:Linux 将数据从主机管道传输到docker容器命令不适用于docker计算机,linux,docker,pipe,docker-machine,Linux,Docker,Pipe,Docker Machine,我正在Windows 10上运行Docker,使用托管。我正尝试使用以下命令通过“docker run”将数据从主机传输到容器繁殖中: echo test | docker run -i ubuntu:16.04 cat - 我希望此命令将“test”输出到stdout,但它所做的只是打印一个空行: jannis MINGW64 ~ $ echo test | docker run -i ubuntu:16.04 cat - jannis MINGW64 ~ $ 但是,当我ssh进入doc
echo test | docker run -i ubuntu:16.04 cat -
我希望此命令将“test”输出到stdout,但它所做的只是打印一个空行:
jannis MINGW64 ~
$ echo test | docker run -i ubuntu:16.04 cat -
jannis MINGW64 ~
$
但是,当我ssh进入docker机器时,该命令按预期工作:
jannis MINGW64 ~
$ docker-machine ssh
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 17.06.1-ce, build HEAD : 80114bc - Fri Aug 18 17:58:04 UTC 2017
Docker version 17.06.1-ce, build 874a737
docker@default:~$ echo test | docker run -i ubuntu:16.04 cat -
test
编辑日期:2017年11月2日
原来是我使用的终端有问题()。或者更确切地说,是Docker专门为ConEmu编写的代码库
按照中建议的解决方法,我成功地使管道工作:
作为一种解决方法,禁用ConEmu设置->功能->ANSI和xterm序列
对我有帮助
相关链接:
- 我在docker机器上的票:
- ConEmu车票:
- 码头工人票:
echo piped content | docker run -i ubuntu:16.04 cat -
相反,我这样做:
jannis MINGW64 ~
$ docker create --name test-container ubuntu:16.04 sh -c 'cat - < /tmp/emulatedpipe'
a6eaf1e5f143113bcffa9df66a47b37c124cd34447b670480b5f096d45b7b162
jannis MINGW64 ~
$ echo piped content > emulatedpipe
jannis MINGW64 ~
$ docker cp emulatedpipe test-container:/tmp
jannis MINGW64 ~
$ docker start -i test-container
piped content
jannis MINGW64~
$docker create——名称测试容器ubuntu:16.04 sh-c'cat-模拟管道
詹尼斯·明威64~
$docker cp仿真管道测试容器:/tmp
詹尼斯·明威64~
$docker start-i测试容器
管道内容
2017年11月2日编辑
原来是我使用的终端有问题()。或者更确切地说,是Docker专门为ConEmu编写的代码库
按照中建议的解决方法,我成功地使管道工作:
作为一种解决方法,禁用ConEmu设置->功能->ANSI和xterm序列
对我有帮助
相关链接:
- 我在docker机器上的票:
- ConEmu车票:
- 码头工人票:
echo piped content | docker run -i ubuntu:16.04 cat -
相反,我这样做:
jannis MINGW64 ~
$ docker create --name test-container ubuntu:16.04 sh -c 'cat - < /tmp/emulatedpipe'
a6eaf1e5f143113bcffa9df66a47b37c124cd34447b670480b5f096d45b7b162
jannis MINGW64 ~
$ echo piped content > emulatedpipe
jannis MINGW64 ~
$ docker cp emulatedpipe test-container:/tmp
jannis MINGW64 ~
$ docker start -i test-container
piped content
jannis MINGW64~
$docker create——名称测试容器ubuntu:16.04 sh-c'cat-模拟管道
詹尼斯·明威64~
$docker cp仿真管道测试容器:/tmp
詹尼斯·明威64~
$docker start-i测试容器
管道内容
做一件事安装Git Bash,然后在Git Bash内部尝试?@TarunLalwani这是GitBash。我将编辑我的帖子。@TarunLalwani最后你的提示帮助我解决了这个问题。在原始GitBash控制台中运行该命令(而不是通过ConEmu运行)帮助我找到了根本原因。查看我编辑过的答案,了解详细信息这些天应该有用,只需保留它-我而不是-它。只需做一件事安装Git Bash,然后在Git Bash内尝试?@TarunLalwani这是GitBash。我将编辑我的帖子。@TarunLalwani最后你的提示帮助我解决了这个问题。在原始GitBash控制台中运行该命令(而不是通过ConEmu运行)帮助我找到了根本原因。请参阅我编辑的答案以了解详细信息。这些天应该有用,只需保留它-我而不是-它。