docker-compose生成的容器立刻退出,exited with code 0

问题

通过自己编写的docker-compose.yml管理项目。

但是生成的容器却立刻退出。


解决

Docker镜像的缺省命令是bash,如果不加 -it,bash命令执行了自动会退出,加-it后docker命令会为容器分配一个伪终端,并接管其stdin/stdout支持交互操作,这时候bash命令不会自动退出

像不使用docker-compose,我们会执行类似如下的命令

docker run -it --name node node

docker-compose需要额外配置下

需要在docker-compose.yml中包含以下行:

1
2
stdin_open: true
tty: true

第一个对应于docker run中的 -i ,第二个对应于 -t .


参考

Docker-Composer exited with code 0
交互式shell使用Docker Compose
Docker Compose—简化复杂应用的利器

关注我的微信公众号[李一二],即时看更多的文章