退出代码0泊坞窗

我试图用Docker-compose服务启动容器。但是不幸的是, 容器退出了代码0 。 容器是build立在一个.tar.gz存档的存储库。 这个档案是一个Centos虚拟机。

我想从同一个存档创build6个容器。 而不是input6次docker命令,我想创build一个docker-compose.yml文件,我可以总结他们的命令和标记。

我已经开始编写docker-compose.yml文件来创build一个容器。

这是我的docker-compose.yml:

version: '2' services: dvpt: image: compose:test.1 container_name: cubop1 command: mkdir /root/essai/ tty: true 

不要关注这个命令,因为我只是要指定一个命令。

所以我的问题是, 为什么容器正在退出 ? 有没有另一种解决scheme来同时build立这些容器?

感谢您的回应。

答案实际上是第一个评论。 我会稍微解释米格尔的评论。

首先,我们需要了解Docker容器运行单个命令。 只要该命令启动的进程正在运行,容器就会运行。 一旦过程完成并退出,容器将停止。

有了这样的理解,我们可以假设你的情况正在发生什么。 当你启动你的dvpt服务时,它运行命令mkdir /root/essai/ 。 该命令创build文件夹,然后退出。 此时,Docker容器因为进程退出而停止(状态为0,表示mkdir已完成且没有错误)。

一种解决scheme是创build一个不会结束的进程,一个无限循环或者可以在后台连续运行的东西。 这将保持打开容器,因为该过程不会退出。

这是非常黑客。 我仍然在寻找更好的解决scheme。

Zend Server镜像就是这样做的。 在他们的.sh脚本中,他们有一个最终的命令:

 exec /usr/local/bin/nothing 

它执行一个在后台连续运行的文件。 我试图在这里复制文件内容,但它必须是二进制的。

编辑:你也可以用/bin/bash结束你的文件,在容器中开始一个新的terminal进程并阻止它closures。