首页 文章

Docker组合分离模式不起作用

提问于
浏览
2

问:如何在分离模式下运行docker-compose

我试图在分离模式下运行docker-compose但它 will exits after just it's run ,但我能够使用'docker run'命令在分离模式下运行相同的图像 .

  • 使用'docker run'命令运行图像 (works in detach mode)
docker run -itd ubuntu:16.04

下面是'docker ps -a'命令的输出

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
d84edc987359        ubuntu:16.04        "/bin/bash"         4 seconds ago       Up 3 seconds                                   romantic_albattani
  • 使用'docker-compose up -d'命令 (didn't work in detach mode) 运行相同的图像

下面是我的docker-compose.yml文件

version: '3'
services:
ubuntu:
    image: ubuntu:16.04

'docker-compose ps'命令输出

Name              Command    State    Ports 
----------------------------------------------------
composetesting_ubuntu_1   /bin/bash   Exit 0

更新:在docker-compose.yml文件中使用tty:true参数时,如下所示

version: '3'
services:
ubuntu:
    image: ubuntu:16.04
    tty: true

然后控制台不会执行任何命令,就像我键入'ls -l'命令控制台将不响应 .

2 回答

  • 1

    我只需要将tty:true添加到我的docker-compose.yml中

    version: '2'
        services: 
          ubuntu:
            image: ubuntu:16.04
            tty: true
    

    Docker版本1.12.5,build 7392c3b

    docker-compose版本1.7.1,build 0a9ab35

  • 4

    在@ fewtile42 's answer is correct respect to my question. But only using ' tty:true'参数用户将无法执行任何命令,因此如果还想执行或与控制台交互,则还应使用 'stdin_open: true' 参数 .

    version: '2'
    services: 
      ubuntu:
        image: ubuntu:16.04
        tty: true 
        stdin_open: true
    

相关问题