Syl*_*.J. 14 docker boot2docker docker-compose docker-machine
我正在尝试使用docker-compose服务启动容器.但不幸的是,容器退出了whith代码0.由于存储库来自.tar.gz存档,因此构建容器.此存档是Centos VM.
我想从同一档案中创建6个容器.而不是键入6次docker命令,我想创建一个docker-compose.yml文件,我可以在其中汇总他们的命令和标记.
我已经开始编写docker-compose.yml文件,只是为了创建一个容器.
这是我的docker-compose.yml:
version: '2'
services:
dvpt:
image: compose:test.1
container_name: cubop1
command: mkdir /root/essai/
tty: true
Run Code Online (Sandbox Code Playgroud)
不要注意命令,因为我只需要指定一个命令.
所以我的问题是,为什么容器正在退出?还有另一种解决方案可以同时构建这些容器吗?
谢谢你的回复.
shg*_*Inc 27
你可以用像 tail -f /dev/null 这样的命令结束
它通常在我的 docker-compose.yml 中使用
command: tail -f /dev/null
很容易看出我是如何保持容器运行的。
docker ps
Leo*_*ipe 25
使用 -d 在后台运行您的 docker
$ docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
并在 docker-compose.yml 添加:
mydocker:
tty: true
Run Code Online (Sandbox Code Playgroud)
And*_*inn 24
答案实际上是第一个评论.我会稍微解释一下米格尔的评论.
首先,我们需要了解Docker容器运行单个命令.只要该命令启动的进程正在运行,容器就会运行.一旦完成该过程并退出,则容器将停止.
有了这种理解,我们就可以假设你的情况发生了什么.当您启动dvpt服务时,它会运行该命令mkdir /root/essai/.该命令创建文件夹然后退出.此时,Docker容器已停止,因为该进程已退出(状态为0,表示已mkdir完成但没有错误).
小智 14
我们遇到了一个问题,其中两个客户端服务(vitejs)以代码 0 退出。我添加了 tty: true 并且它开始工作。
dashboard:
tty: true
container_name: dashboard
expose:
- 8001
image: tilt.dev/dashboard
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.tls=true"
- "traefik.http.routers.dashboard.entrypoints=web"
- "traefik.http.routers.dashboard-wss.tls=true"
- "traefik.http.routers.dashboard-wss.entrypoints=wss"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17535 次 |
| 最近记录: |