Docker问题解决

常见docker问题解决

Docker 容器一启动就退出

根据镜像启动容器,执行命令如下:

1
docker run --name npm -d node

通过docker ps查看正在运行中容器,却找不到npm容器。再次通过docker ps -a查看发现,npm容器已经处于停止状态了。
原因
Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(eg. 运行top,tail等),就是会自动退出
这个是 docker 的机制问题,比如我们的 web 容器,以 nginx 和 fpm 为例,
正常情况下,启动服务只需启动相应的 service 即可,例如:service nginx start && service php5-fpm start,但是,这样做, nginx 和 fpm 均以后台进程模式运行,就会导致 docker 前台没有正在运行的应用,so,容器会立即自杀,因为他觉得没事可做了。

解决方案

1
docker run --name npm -P -d node /bin/sh -c "while true; do echo hello world; sleep 1; done"