我正试图通过远程api调用docker命令。
Docker远程api似乎没有"分离模式"选项。http://docs.docker.io/en/latest/commandline/command/run/
我可以在bash中使用这个应用程序,我想通过远程api使用它。https://github.com/grigio/docker-stringer
事实上,远程API没有"分离"模式,因为"附加"模式是一个额外的端点。
如果您想使用远程API以分离模式运行,只需创建并启动您的容器,而无需附加到它
如果容器仍然立即关闭,请使用docker logs <container id>
检查错误。这个问题可能与detach
无关。
从API的角度理解"docker run"命令封装了一系列命令是很重要的:
- 拉取图像(如果本地不可用)
- 创建容器
- 连接到容器
- 启动容器
而"docker-run-d"与上面的内容相同,但没有"附加"步骤。
因此,在使用远程API时,您需要创建并启动容器。
如果容器仍然立即关闭,请使用docker logs <container id>
检查错误。这个问题可能与detach
无关。
据我所知,与-i
CLI选项相当的远程API是/containers/create
调用中的"OpenStdin": true
。如果没有这一点,从stdin读取的任何内容似乎都会收到EOT
。
这就是stdin被初始化(或未初始化)为容器管道的地方,我还没有追踪到它。