我有一个 Dockerfile 构建包含自定义控制台应用程序的图像:
FROM ubuntu:bionic
# Some non-relevant steps...
CMD bin/my-console-app
my-console-app
是一个简单的控制台应用程序,当它运行时,它通常为您提供插入命令的可能性。
例如
./my-console-app
my-console> some-command
Some result
my-console> some-other-command
Some other result
如果我使用上面的 Dockerfile 运行我构建的容器-d
,一切都很好:
docker run --name my-app --network host -d myapp
使用网络我可以看到控制台应用程序正在正确运行。
但是,如果我在没有 的情况下运行它-d
,例如:
docker run --name my-app --network host myapp
然后我的终端会发疯,就像有人不断按 ENTER 一样:
my-console>
my-console>
my-console>
my-console>
my-console>
my-console>
my-console>
my-console>
...
这将永远持续下去。我无法向控制台应用程序插入任何命令。
为什么会这样?我应该怎么做才能防止这种情况发生?