OwlFocus

Docker为什么刚运行就退出了

原因

Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出。

解决

简单的解决方案可能是添加一个循环:

1
while true; do sleep 1000; done

例子,在start.sh脚本增加以下:

1
2
3
4
5
6
7
if [[ $1 == "-d" ]]; then
while true; do sleep 1000; done
fi
if [[ $1 == "-bash" ]]; then
/bin/bash
fi

Dockerfile文件中使用:

1
CMD ["/etc/start.sh", "-d"]

Why docker container exits immediately