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
使用以下 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