【发布时间】:2020-08-12 09:00:53
【问题描述】:
总结一下我遇到的问题: 我想在容器中运行的 minecraft 控制台上执行命令,就像我以交互模式附加到它但不需要附加到它时一样。
docker attach container_name
command
detach_from_contaienr
就像运行 docker exec 一样,但它将命令放入容器内运行的程序的标准输入中,就像在 docker attach 中一样。
我只是搜索一个具有相同功能的 oneliner。就像在这个question
编辑:
echo 'say test' | docker attach <container id>
给出错误:
the input device is not a TTY
编辑2: 在 this post 中删除容器链接上的 -t 标志后
echo 'say test' | docker attach <container id>
命令在日志显示时到达服务器,但在执行后我卡在空白输入中,因为命令不会以某种方式停止
如果我现在执行双重 ctrl+c 容器将停止...
编辑3: 我尝试在 docker 主机上执行这些命令,并在正在运行的 spigot minecraft 服务器中执行命令
【问题讨论】:
-
在标准 Linux 中你不能这样做;我也不会在 Docker 中尝试它。网络 (HTTP) 接口是否更适合您的应用程序,这样您就可以向它发送请求并获取响应,而无需尝试管理容器的标准输入(并且无需以 root 身份与之交互)?
-
感谢您的回答!问题是它不是一个自行开发的应用程序,而是一个我的世界服务器。我只想写到它的控制台。我编辑了这个问题,所以很明显它是一个我的世界服务器而不是一个随机应用程序。
标签: shell docker command-line stdin minecraft