Docker-如何通过API向程序发送输入
我一直在使用Docker的远程API创建一个容器,在其中运行一个Python程序,连接到容器,并将写入stdout的输出流到web 现在,我想让我的Python程序接受来自stdin的用户输入。例如Docker-如何通过API向程序发送输入,docker,Docker,我一直在使用Docker的远程API创建一个容器,在其中运行一个Python程序,连接到容器,并将写入stdout的输出流到web 现在,我想让我的Python程序接受来自stdin的用户输入。例如 import sys name = sys.stdin.readline() print "Your name is: " + name 如何通过API将用户输入传递给在Docker容器中运行的Python程序?我没有看到任何API端点允许我将“输入”传递到docker容器中运行的进程 谢谢。不要
import sys
name = sys.stdin.readline()
print "Your name is: " + name
如何通过API将用户输入传递给在Docker容器中运行的Python程序?我没有看到任何API端点允许我将“输入”传递到docker容器中运行的进程
谢谢。不要认为docker支持这种互动。不过,有两种解决方案
希望这有帮助。也许只是在容器内运行一个sshd服务器 实际上,您可以使用
docker attach
附加容器的stdin。例如:
启动“侦听”容器:
docker run -i -t ubuntu:precise /bin/bash -c 'read FOO; echo $FOO;'
然后在另一个终端:
# lookup container id
docker ps
# attach the container
docker attach 91495c6374b1
现在,您已连接到侦听容器的stdin,可以键入thing,一切都应该正常
至于使用远程API来实现这一点。。。我认为这可以使用
/containers/{id}/attach
端点和stdin=1
以及可能的stream=1
。无法使其正常工作,并且仍在努力理解其背后的go代码,但从我在本文中看到的情况来看,这肯定是可能的。这个问题有点老了,但我认为您正在寻找的是来自远程API的附加入口点。
请点击此处:
它会打开一个套接字流,您需要与docker进行对话。您还可以将websocket与以下选项一起使用:
我发现了这个IRC聊天,详细解释了如何继续:
希望对您有所帮助谢谢,我确实注意到了端点中的
stdin
选项。但是,我想知道,当HTTP是单向流时,我如何才能提供输入。@jeffreyveon-如果你还好奇的话,他们(目前)正在劫持TCP连接。e、 HTTP是一种方式,但它基于开放的TCP套接字。他们基本上对HTTP协议进行了少量扩展,以允许通过TCP套接字进行双向通信