Docker 在使用 while 命令设置入口点后,容器几乎使用了 CPU 的 20%

Docker container uses almost 20% of CPU after set entrypoint with while command

使用以下 Dockerfile 构建映像:

FROM ubuntu:14.04

...

ENTRYPOINT ["/bin/bash","-c","while true; do cat; done"]

然后执行"docker run"以detach模式启动容器,CPU使用率为21.9%。但是,如果我删除容器内的 ENTRYPOINT 和 运行 while 命令,CPU 使用率非常低。

有人知道为什么会这样吗?

因为当您 运行 容器 cat returns 时您没有立即打开 stdin 并且您留下了一个消耗 CPU 个循环的旋转循环.如果您 运行 与 -i-t 或两者兼而有之,则 cat 将按预期等待输入。

docker run -itd image_name