总结一下我遇到的问题: 我想在容器中运行的Minecraft控制台上执行命令,就像我以交互方式附加到容器时一样,但不需要附加到容器中。
= delete
setFixedLengthStreamingMode
docker attach container_name
就像运行docker exec一样,但是它像在docker attach中一样,将命令放入正在容器内部运行的程序的stdin中。
我只是搜索执行相同操作的oneliner。就像这个question
编辑:
command
给出错误:
detach_from_contaienr
Edit2: 在this post
中删除容器链接上的-t标志之后 echo 'say test' | docker attach <container id>
该命令随着日志显示而到达服务器,但执行后由于命令无法以某种方式停止,因此我陷入了空白输入
如果我现在执行double ctrl + c,则容器停止...
Edit3: 我尝试在docker主机上执行这些命令,然后在运行中的spigot minecraft服务器中执行命令
答案 0 :(得分:-1)
显然,您可以使用命名管道来执行此操作,如下所示:https://stackoverflow.com/a/26765590/2926055
# in the Docker container
$ mkfifo myfifo
$ java -jar minecraft_server.jar nogui < myfifo
# via your `docker exec`
$ echo 'say test' > myfifo
如前所述,请注意不要意外发送EOF字符。