我没有在容器内需要执行的内容,但是希望容器一直运行。所以,我尝试使用以下命令行创建容器:
'docker run -d alpine sleep infinity'
。但是,实际上容器立即进入了停止状态。这是为什么?'docker run -d alpine sleep infinity'
。但是,实际上容器立即进入了停止状态。这是为什么?alpine
基于 busybox,不提供 GNU 工具中可用的全部选项和扩展;infinity
作为 sleep 的选项就是一个无法使用的例子。
考虑使用以下替代方案:
docker run -d alpine sh -c 'while sleep 3600; do :; done'
使用这个方法在Dockerfile中更改入口点对我很有用。
ENTRYPOINT ["/bin/sh","-c","sleep infinity"]
在 Docker-compose 或 Dockerfile 中,您可以使用以下命令:
command: ["/bin/ash", "-c", "sleep infinity"] ENTRYPOINT ["/bin/ash", "-c", "sleep infinity"]
似乎 Alpine 使用 ash 作为 shell。