Docker: 在容器中运行的spigot控制台执行命令

问题描述 投票:1回答:1

总结一下我的问题:我想在容器中运行的minecraft控制台上执行一个命令,就像我在交互模式下附加到它时一样,但不需要附加到它。

docker attach container_name

command

detach_from_contaienr

就像运行docker exec,但它把命令放到容器内运行的程序的stdin中,就像docker attach一样。

我只是简单地搜索一个oneliner,做同样的事情。就像这个 疑问

编辑。echo 'say test' | docker attach <container id>

给出错误。

the input device is not a TTY

Edit2:删除容器上的-t标志后,林克在这里。此职位

echo 'say test' | docker attach <container id>

命令进入服务器,如日志所示,但在执行后,我卡在一个空白的输入,因为命令没有停止,不知何故。

如果我现在做双ctrl+c,容器就会停止......

编辑3:我尝试在docker主机上执行这些命令,并在正在运行的spigot minecraft服务器上执行该命令。

shell docker command-line stdin minecraft
1个回答
-1
投票

很显然,你可以使用一个命名的管道来实现这个目标,如这里所示。https:/stackoverflow.coma267655902926055

# in the Docker container
$ mkfifo myfifo
$ java -jar minecraft_server.jar nogui < myfifo

# via your `docker exec`
$ echo 'say test' > myfifo

如前所述,注意不要不小心发送了一个EOF字符。

© www.soinside.com 2019 - 2024. All rights reserved.